Data aggregation with microservices

ABSTRACT

In some embodiments, a transaction request associated with a first transaction identifier may be obtained. A first database may be accessed to store a transaction entry in the first database based on the transaction request. A reversed key may be generated by reversing the first transaction identifier. A second database may be accessed to determine whether the second database comprises any records indexed by the reversed key. An aggregation record comprising the first value may be generated in the second database. In some embodiments, a second transaction identifier of an update message for the first database may be reversed to reconstruct the reversed key, and the second database may be searched with the reversed key to retrieve the aggregation record. The aggregation record may be updated based on the second value and sent to a destination after updating the aggregation record with the second value.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.17/201,466 filed Mar. 15, 2023. The aforementioned application isincorporated by reference in its entirety.

BACKGROUND

Records in a database are often updated via database transactions thatare associated with other records. Quantities associated with thedatabase transactions, such as amounts by which a value of a recordchanges, may often be used as inputs for various anomaly detectionoperations. These anomaly detection operations may often use indicatedassociations between records to track additional features or inputvalues.

SUMMARY

Aspects of the invention relate to methods, apparatuses, media, and/orsystems for detecting anomalies. After obtaining or detecting a databasetransaction, a computer system performs operations to determine whetherthe database transaction triggers any criteria indicating an anomaly.However, many anomalies may depend on values associated with a pluralityof transactions, and operations to detect such anomalies may cause thecomputer system to search a set of records related to the transaction.Such operations may increase the computational cost and complexity of anoperation. Moreover, a data system may expect to see more than onethousand, more than one million, more than one billion databasetransactions, or some other number of database transactions per day.Furthermore, the computational costs associated with criteria-checkingmay be exacerbated by the use of deep learning models or computationallyexpensive functions when determining whether a transaction is anomalous.Operations which increase the number of records to be searched or thetime required to perform a search for records may thus increase thecomputational resources required to perform anomaly detection forsystems that experience a large (e.g., more than 1000) number oftransactions per day. In many scenarios, such obstacles may renderimplementations of machine learning operations or rule-basedcriteria-checking impractical in real-world operations for large datasystems.

Methods and systems described herein may provide operations that mayreduce the number of searches or increase the speed of record retrieval.As an example, such methods or related systems may accelerate the use ofcertain verification operations or even permit the use of newverification operations that were previously infeasible for real-worldoperations. Some embodiments may use a first machine learning model todetermine a search parameter for a record identified by a transaction.Some embodiments may then use the search parameter to limit the numberof related record values for consideration by another machine learningsystem or other decision system that may require more computationalresources than the first machine learning model. Alternatively, or inaddition, some embodiments may perform index-reversing operations orstorage operations when storing and retrieving records related todatabase transactions.

In some embodiments, a database transaction request associated with afirst transaction identifier may be obtained via a first API, where thedatabase transaction request comprises a first value. A second API of asequential transactions database may be accessed to store a transactionentry in the sequential transactions database based on the databasetransaction request. A reversed key may be generated by reversing thefirst transaction identifier. A third API of an aggregation database maybe accessed to determine whether the aggregation database comprises anytransaction aggregation records indexed by the reversed key. In responseto a determination that the aggregation database does not store anytransaction aggregation records indexed by the reversed key, atransaction aggregation record comprising the first value in theaggregation database may be generated. In some embodiments, thetransaction aggregation record is indexed with the reversed key in theaggregation database. An update message indicating an update to thesequential transactions database may be obtained, where the updatemessage comprises a second transaction identifier and a second value,and where the first API was not used to update the sequentialtransactions database. In some embodiments, the second transactionidentifier may be reversed to reconstruct the reversed key. Theaggregation database may be searched with the reversed key to retrievethe transaction aggregation record. The transaction aggregation recordmay be updated based on the second value. The transaction aggregationrecord may be sent to the destination API after updating the transactionaggregation record with the second value.

In some embodiments, a record update related to an account may bedetected. An account record that identifies the account may be obtainedbased on a record update, where the record update indicates the accountrecord and at least one other account record. An update history storedin the account record to a first machine learning model may be providedto assign a category value of a plurality of categories to the accountrecord. A records graph comprising a node mapping to the account recordmay be obtained, where a graph edge associating adjacent nodes of therecords graph indicates a set of updates identifying the adjacent nodesor a shared identifier between the adjacent nodes. A first path distancethreshold of a plurality of path distance thresholds may be selectedbased on the category value, where the first path distance threshold isless than a second path distance threshold of the plurality of pathdistance thresholds. The records graph may be traversed via a set ofpaths to select a set of nodes of the records graph, such that 1) eachrespective path of the set of paths begins at the node mapping to theaccount record and 2) a maximum path distance of the set of paths isless than or equal to the first path distance threshold. A set of recordvalues associated with the set of nodes may be determined, where eachrespective value of the set of record values is stored in a respectiverecord identified by a respective node of the set of nodes. The set ofrecord values to a second machine learning model may be provided todetermine whether the record update satisfies a set of criteria. Therecord update may be stored in an aggregated set of record updates inresponse to a determination that the record update satisfies the set ofcriteria.

Various other aspects, features, and advantages of the invention will beapparent through the detailed description of the invention and thedrawings attached hereto. It is also to be understood that both theforegoing general description and the following detailed description areexamples and not restrictive of the scope of the invention. As used inthe specification and in the claims, the singular forms of “a,” “an,”and “the” include plural referents unless the context clearly dictatesotherwise. In addition, as used in the specification and the claims, theterm “or” means “and/or” unless the context clearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a system for anomaly detection for records based ontracking quantities of database transaction and associations betweenrecords, in accordance with one or more embodiments.

FIG. 2 shows a machine learning model to dynamically modify searchparameters, in accordance with one or more embodiments.

FIG. 3 shows a conceptual diagram of a records graph, in accordance withone or more embodiments.

FIG. 4 shows a first architecture of a system used to store records in areal-time aggregation database, in accordance with one or moreembodiments.

FIG. 5 shows a second architecture of a system used to aggregate andconsolidate records, in accordance with one or more embodiments.

FIG. 6 shows a third architecture of a system containing a microservice,in accordance with one or more embodiments.

FIG. 7 shows a flowchart of operations to determine a search parameterand whether a set of criteria are satisfied based on the searchparameter, in accordance with one or more embodiments.

FIG. 8 shows a flowchart of operations to update a record and sendvalues of the updated record to a destination application programinterface, in accordance with one or more embodiments.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the embodiments of the invention. It will beappreciated, however, by those having skill in the art that theembodiments of the invention may be practiced without these specificdetails or with an equivalent arrangement. In other cases, well-knownstructures and devices are shown in block diagram form in order to avoidunnecessarily obscuring the embodiments of the invention.

Example Systems

FIG. 1 shows a system for anomaly detection for records based ontracking quantities of database transaction and associations betweenrecords, in accordance with one or more embodiments. As shown in FIG. 1, system 100 may include computer system 102, a set of user devices 104including user devices 104 a-104 n, or other components. Computer system102 may include a record update subsystem 112, record search subsystem114, and/or other components. Each user device of the set of userdevices 104 may include any type of mobile terminal, fixed terminal, orother device. By way of example, a user device of the set of userdevices 104 may include a desktop computer, a notebook computer, atablet computer, a smartphone, a wearable device, or other user device.Users may, for instance, utilize one or more of the set of user devices104 to interact with one another, one or more servers, or othercomponents of system 100. It should be noted that, while one or moreoperations are described herein as being performed by particularcomponents of computer system 102, those operations may, in someembodiments, be performed by other components of computer system 102 orother components of system 100. As an example, while one or moreoperations are described herein as being performed by components of thecomputer system 102, those operations may, in some embodiments, beperformed by components of the set of user devices 104. It should benoted that, although some embodiments are described herein with respectto machine learning models, other prediction models (e.g., statisticalmodels or other analytics models) may be used in lieu of or in additionto machine learning models in other embodiments (e.g., a statisticalmodel replacing a machine learning model and a non-statistical modelreplacing a non-machine learning model in one or more embodiments).

In some embodiments, the system 100 may detect anomalies based on dataassociated with account records, transaction records, or other records.As used in this disclosure, a transaction record may include a record ofa database transaction, where a database transaction may include set ofqueries to a database. In some embodiments, a transaction record mayrepresent a record of a financial transaction between two accounts.Alternatively, or in addition, a transaction record may also representother types of transactions, such as a database access event thatpermitted a user to view and download a digital signature in an accountrecord.

A record may satisfy a set of criteria indicating an anomaly based onvalues stored in the record and values stored in records associated withthe record. For example, the system 100 may detect that a target accountrecord is anomalous based on transactions associated with a set ofaccount records. Various types of anomalies may be detected assigned toa record, such as identifying an account record as a conductor,determining that a set of transaction records show evidence of layering,or the like. The set of records searched for anomaly detection may bebased on search parameters (e.g., a path distance threshold), anotherdistance threshold (e.g., a feature space distance threshold), a sharednumber of categories, etc. For example, the set of records may beselected from a graph of records associated with each other via a set ofgraph edges, where the graph edges may be encoded as pointers, values inan array, or other data elements. As further discussed below, someembodiments may determine a search parameter using a prediction model,such as a machine learning model or statistical model. For example, someembodiments may select a path distance threshold based on a feed forwardneural network.

In some embodiments, the system 100 may perform real-time aggregation ofdatabase transaction values associated with a set of account records andstore the resulting aggregation records in a real-time aggregation datastore. As used in this disclosure, a real-time aggregation data store oranother component capable of responding in real-time may provide aresponse to a query in less than 10 minutes, less than 5 minutes, lessthan one minute, less than 30 seconds, less than 10 seconds, etc. Someembodiments may use the aggregation value as an input for a decisionsystem to determine whether a set of criteria indicating an anomaly issatisfied. Some embodiments may use reverse indexing operations todetermine which records are associated with a transaction and update aset of corresponding records. For example, some embodiments may update atransaction aggregation record associated with a target record afterdetecting a database transaction and determining the target record byreversing an identifier of the database transaction. Some embodimentsmay then provide a value(s) of the transaction aggregation record to adecision model to determine whether the target record satisfies a set ofcriteria. Some embodiments may then send the record to an applicationprogram interface (API) of an external server or other third-partycomputing device.

In some embodiments, a machine learning model may include one or moreneural networks. As an example, neural networks may be based on a largecollection of neural units (or artificial neurons). Neural networks mayloosely mimic the manner in which a biological brain works (e.g., vialarge clusters of biological neurons connected by axons). A neural unitmay receive a set of inputs and produce a set of outputs. Each neuralunit of a neural network may be connected with many other neural unitsof the neural network, where the output of a first neuron may beprovided as an input to a second neuron. Such connections can beenforcing or inhibitory in their effect on the activation state ofconnected neural units. In some embodiments, each individual neural unitmay use a summation function or other aggregation function whichcombines the values of its inputs together. In some embodiments, eachconnection (or the neural unit itself) may have a threshold functionsuch that the value(s) of an input(s) must surpass the threshold beforethe value(s) or result of the value(s) are propagated as outputs toother neural units. These neural network systems may be self-learningand trained, rather than explicitly programmed, and can performsignificantly better in certain areas of problem solving, as compared totraditional computer programs.

The functions or internal parameters of a neural unit in a neuralnetwork or an architecture of the neural network may provide additionalfeatures. Some embodiments may use a feed-forward neural network, whichmay provide features such as faster results. Some embodiments may use aneural network having multiple layers (e.g., where a signal pathtraverses from front layers to back layers) to increase accuracy. Insome embodiments, back-propagation techniques may be utilized by theneural networks, where forward stimulation is used to reset weights onthe “front” neural units. In some embodiments, stimulation andinhibition for neural networks may be more free-flowing, withconnections interacting in a more chaotic and complex fashion. Asfurther described below, some embodiments may use concurrently usedifferent types of machine learning models to perform different tasks.For example, some embodiments may use a shallow (e.g., fewer than 4layers) feed forward neural network to classify an account record todetermine a search parameter for the account record and use a deeprecurrent neural network to detect anomalies based on account recordvalues determined based in part on the search parameter.

Subsystems 112-116

In some embodiments, the record update subsystem 112 may update, atleast in part, one or more values of a database(s) 132, such as atraining database(s) 134, a transactions database(s) 136, an accountdatabase(s) 138. The account database(s) 138 may include account recordsthat represent individual users, entities, sets of other accounts, etc.An account record may include indicators of historical account activity,such as a list of account record changes, quantitative score changes,etc. An account record may be indexed using a reverse-indexing scheme,where incoming database transactions may include an identifier of anaccount that is then partially or fully reversed to obtain an index ofan account record in the account database. For example, a database mayinclude the account identifier “12345,” which may then be reversed toretrieve an account record having the database index record “54321.”

As described elsewhere in this disclosure, some embodiments may storedifferent versions of the account record in different types ofdatabases, where a first database may include advanced attributeindexing and a second database with indexing architecture capable ofreal-time aggregation. In some embodiments, the second database maystream data to a management system or service, which may permit a useror anomaly detection system to review the data. For example, someembodiments may stream aggregation values stored the second database toa case management system in the form of reports, where a decision systemof the case management system may determine whether a report thatincludes the aggregation values should be sent to a destination API orflagged as an anomaly.

In some embodiments, a transactions database(s) may store a record ofdatabase transactions, including operations to read or write data storedin a database of the database(s) 132. Alternatively, or in addition, thetransactions database(s) 136 may include a plurality of transactionrecords for different types of databases. For example, the transactionsdatabase(s) 136 may include a first transactions database storingtransaction records of transactions for financial transactions, a secondtransactions database storing transaction records of transactions forsecurity-related transactions, or another transactions database storingtransaction records of transactions for other types of transactions.

In some embodiments, an account record may represent an entity account,where an entity account may be linked with multiple account records. Forexample, a first user account may be represented by a first accountrecord, and a second user account may be represented by a second accountrecord. Both first and second user accounts may be labeled as being partof an entity account, where a third account record may represent theentity account. The entity account may represent a person, a legalentity, an organization, etc. Some embodiments may collect record valuesfrom a plurality of accounts indicated as part of or otherwiseassociated with the entity account and determine whether the collectedrecord values satisfy a set of criteria indicating an anomaly. Forexample, after determining that five user accounts are associated with asame entity account, some embodiments may obtain a set of update valuesindicating withdrawals from a set of user accounts. Some embodiments maythen sum the set of update values, update a quantitative field of theentity account with the sum, and determine whether the sum satisfies athreshold of a set of criteria indicating an anomaly.

An account record may include identifiers, references, links, or otherindicators of other account records. For example, an account record maystore pointers to other account records with which the account recordhas been associated via one or more database transactions.Alternatively, or in addition, some embodiments may store a separatedata structures that associate different account records. For example,some embodiments may store a record graph in the form of set of arrays,where at least one array of the set of arrays may represent graph edgesof the record graph and another array of the set of arrays may representweights associated with the graph edges.

In some embodiments, an account record may store other information, suchas indicated location at which a financial transaction took place, wherethe financial transaction may have updated a value of the account recordvia a database transaction. Other information may also include valuessuch as an account age, an indicator that the account had previouslysatisfied a set of criteria indicating an anomaly (“set of anomalycriteria”), an indicator that another account associated with theaccount record has satisfied a set of anomaly criteria, etc. Forexample, an account record for a target account may indicate that asecond account associated with the target account via a databasetransaction has previously satisfied a set of anomaly criteria.Alternatively, or in addition, an account record may store demographicinformation, such as a user age or zip code.

In some embodiments, the record update subsystem 112 may includesubroutines to generate or update a transaction aggregation record basedon transaction records or account records. A transaction aggregationrecord may be an aggregation record that includes a sum, weighted sum,product, or other value based on a set of database transactions. In someembodiments, an account record may be used as a transaction record.Alternatively, or in addition, a transaction aggregation record may begenerated separately from the account record. For example, the recordupdate subsystem 112 may include operations to generate a transactionaggregation record corresponding with a user account record. Asdescribed elsewhere in this disclosure, a transaction aggregation recordmay be stored in a database capable of real-time updating, where thetransaction aggregation record may be transferred to a decision systemvia a stream.

The record search subsystem 114 may be used to obtain categories,scores, or other features for a decision system. The record searchsubsystem 114 may use a transaction value(s) obtained from a databasetransaction used by the record update subsystem 112 as an input(s) todetermine a search parameter. For example, the record search subsystem114 may use a machine learning model to categorize an account record asa “type1” or “type2” and, based on the resulting category, determine themaximum path distance by which to search on a graph of user accounts. Insome embodiments, the machine learning model may be trained using dataprovided by the training database(s) 134. The record search subsystem114 may select a set of nodes of the graph based on the search, whereeach respective node of the selected set of nodes may map to orotherwise represent a different account record and retrieve one or morevalues associated with the different account records. As used in thisdisclosure, a respective node of a set of nodes may be described asmapping to a respective record based on the respective node including anidentifier of the record, include a reference to the record, be listedin association to the reference, etc.

Alternatively, or in addition, the record search subsystem 114 mayperform various other operations to determine a set of other recordsbased on a target record, where a target record may be an initial recordidentified by a transaction. Some embodiments may select a set ofrecords that share a category value with the target record or aspecified set of category values. For example, some embodiments mayselect a set of user account records based on a determination that theselected set of records and the target account record share at least oneof three features, where a feature of a record may include a valuestored in the record, a data field of the record, properties of therecord, an identifier of the record, a label of the record, etc.

Alternatively, or in addition, the record search subsystem 114 mayperform a clustering operation to determine a set of clusters of vectorsgenerated from the features. A vector may represent a vectorized form ofa set of features selected or extracted from an account record or otherrecord. The record search subsystem 114 may then select a set ofaccounts that are indicated to be within a feature space distancethreshold of the target feature, where the feature space distancethreshold may be determined using a machine learning model. As describedelsewhere in this disclosure, a distance threshold may be used todetermine a set of associated records based on a target record. Eachrespective record of the set of associated records is bounded by thedistance threshold in a feature space distance, path distance, or otherdistance of the target record.

The anomaly detection subsystem 116 may detect one or more anomaliesbased on values stored in the transactions database(s) 136, accountdatabase(s) 138, or another collection of records. The anomaly detectionsubsystem 116 may include a neural network or other machine learningmodel (e.g., support vector machine, random forest, or the like) that istrained using the training database(s) 134. After training a machinelearning model, some embodiments may use the machine learning model todetermine whether a record satisfies a set of anomaly criteria.

As described elsewhere in this disclosure, a record may be categorizedinto one or more types of anomalies. Some embodiments may categorize“layering” as an anomaly, where a determination may be made that aplurality of database transactions between multiple account recordsrepresenting financial transactions indicate an attempt to conceal asource of money. For example, some embodiments may determine that afirst sum of a first set of transaction values representing withdrawalsfrom a first set of account records is greater than a first sumthreshold. In response, some embodiments may label a first recordassociated with a transaction encoding at least one value of the firstset of transaction values as “layering participant.”

Some embodiments may categorize “conductor” as an anomaly, where adetermination may be made that a plurality of database transactionsbetween multiple account records representing financial transactionsindicate an attempt to conduct transactions on behalf of another entity.For example, some embodiments may determine that a second sum of asecond set of transaction values representing withdrawals from a secondaccount record is greater than a second sum threshold. and that a thirdsum of a third set of transaction values representing deposits into thesecond account record from a third set of associated records is greaterthan a third sum threshold. In response, some embodiments may label thesecond record associated with the category value “conductor.”

As described elsewhere in this disclosure, the record update subsystem112, record search subsystem 114, or anomaly detection subsystem 116 mayinclude machine learning models, statistical models, or other decisionmodels to detect and report anomalies. The machine learning models usedin this disclosure or their associated model parameters may be stored inmodel database(s). For example, a set of machine learning models used inthis disclosure may include recurrent neural networks, transformermodels, point generation neural networks, or other models, and may beretrieved based on which model(s) is selected. Some embodiments mayinclude operations to select different models based on computingresource availability or modify the architecture of a selected model.For example, some embodiments may increase or decrease the number ofneural network layers based on an available amount of memory orprocessor resource.

FIG. 2 shows a machine learning model to dynamically modify searchparameters, in accordance with one or more embodiments. A machinelearning model 202 may use inputs 204 to provide outputs 206. In someembodiments, outputs 206 may be fed back to machine learning model 202as inputs 204 to train machine learning model 202 (e.g., alone or inconjunction with user indications of the accuracy of the outputs 206,labels associated with the inputs, or with other reference feedbackinformation). In another use case, machine learning model 202 may updateits configurations (e.g., weights, biases, or other parameters) based onits assessment of its prediction (e.g., outputs 206) and referencefeedback information (e.g., user indication of accuracy, referencelabels, or other information). In another use case, where machinelearning model 202 is a neural network, connection weights may beadjusted to reconcile differences between the neural network'sprediction and the reference feedback. In a further use case, one ormore neurons (or nodes) of the neural network may require that theirrespective errors are sent backward through the neural network to themto facilitate the update process (e.g., backpropagation of error).Updates to the connection weights may, for example, be reflective of themagnitude of error propagated backward after a forward pass has beencompleted. In this way, for example, the machine learning model 202 maybe trained to generate better predictions.

In some embodiments, the inputs 204 may include multiple data sets suchas a training data set and a test data set. For example, in someembodiments, a training data set or a test data set may include a set ofrecords that include a detected anomaly or type of detected anomaly anda corresponding set of values of the record, such as a set of valuesobtained from a set of transactions identifying the record. Someembodiments may use the training data set to train a machine learningmodel to determine one or more category values based on a transaction orrecord associated with the transaction. For example, as shown in FIG. 2, the inputs 204 may include a first transaction value representing theamount withdrawn from an account value of a first account record, ahistory of previous transactions stored in the first account record, andan account age. The machine learning model 202 may use the inputs 204 todetermine the output 206, where the output 206 may include aquantitative score, a category value, or another indicator that may beused to determine a search parameter, as described elsewhere in thisdisclosure. In some embodiments, the output 206 may then be displayed ona graphic user interface, such as a manager UI capable of flagging orcorrecting transaction records.

FIG. 3 shows a conceptual diagram of a records graph, in accordance withone or more embodiments. The graph 300 includes a set of graph nodes andgraph edges. Each of the graph nodes 304, 310, 320-321, 330-334, and 340may map to a record, where the record may include an account record, arecord of a transaction, etc. Each of the graph edges 381-389 mayconnect different graph nodes of the graph 300. A graph edge between twograph nodes may indicate an association between the two graph nodes,where the indication may represent or be generated based on atransaction, indicated association, etc. For example, the graph edge 381between the graph node 304 and the graph node 310 may represent a set oftransactions or other set of updates between the pair of records mappedto by the graph node 310 and the graph node 304, respectively. In someembodiments, a graph edge may represent a set of updates that share anidentifier, where the shared identifier may identify one or more recordsmapped to by at least one of the graph nodes connected by the graphedge. For example, the graph edge 382 may be associated with a threedifferent record updates, where each record update includes anidentifier identifying the record mapped to by the graph node 320.

As further discussed below, some embodiments may determine a searchparameter for a search through the nodes of the graph 300 afterobtaining instructions to perform a search for values associated withthe record mapped to by the graph node 304. For example, someembodiments may use a first machine learning model, such as afeedforward neural network, to determine a path distance threshold of“1,” which may have been selected from a plurality of path distancethresholds. Some embodiments may then select each of the mapped to bythe graph nodes 310, 320, 330, respectively, as a set of selectedrecords having values of interest. For example, some embodiments maydetermine a total transaction score based on each of the graph nodes310, 320, and 330. Some embodiments may then provide the totaltransaction score to a decision model that may include a second machinelearning model or other decision model to determine whether the set oftransactions involving the records mapped to by the graph nodes 310, 320and 330 indicate an anomaly.

As further discussed below, a machine learning model may categorize arecord with a category value selected from a set of category values,where a respective category value of the category values may map to adifferent respective search parameter. For example, some embodiments,after obtaining instructions to perform a search for values associatedwith the record that maps to the graph node 330, may use the firstmachine learning model to determine a second path distance threshold of“2.” Some embodiments may then select each of the records mapped to bythe graph nodes 304, 310, 320, and 331-333 as a first set of records,where each record is one or two graph edges away from the graph node330. Some embodiments may then provide values from each record of thefirst set of records to determine a graph edge. Some embodiments mayperform other operations to determine a search parameter, such as usingthe machine learning model to assign a risk score to an account recordbased on a history of activities stored in the account record. Someembodiments may then use a set of thresholds or bins to determine asearch parameter based on the risk score. For example, some embodimentsmay assign a normalized risk score of “0.85” to an account record basedon recorded activities, such as creating additional accounts associatedwith a same user identifier, closing accounts associated with a sameuser identifier, opening up different types of accounts, beingassociated with another account that was indicated as anomalous, etc.

FIG. 4 shows a first architecture of a system used to store records in areal-time aggregation database, in accordance with one or moreembodiments. The architecture 400 shows a set of components, services,or data stores usable for performing one or more operations described inthis disclosure. In some embodiments, update messages may be received bya manager UI 401. As used in this disclosure, an update message mayinclude a transaction request, another type of command that causes adatabase transaction, a message indicating that a transaction requesthas been sent, an acknowledgment indicating that a transaction has beencompleted, etc. For example, some embodiments may obtain an updatemessage comprising a set of update values (e.g., transaction values)provided by a listener process that reports changes to a database, wherethe listener process may be implemented as a database listener, eventlistener, event handler, etc. In some embodiments, the listener processmay provide a version of an update command that causes one or more ofthe operations described in this disclosure. Alternatively, or inaddition, the listener may provide an update message that includesvalues of an update and a database identifier but does not cause furtherchanges in a database identified by the update message.

In some embodiments, a manager UI 401 may provide a set of UI elementsthat enable a user of the manager UI 401 to send a version of the updatemessage to an update service 404. For example, a user of the manager UI401 may click on a button labeled “get next” or another UI element ofthe manager UI 401 and retrieve a record associated with a databasetransaction for review. For example, some embodiments may retrieve anddisplay a currency transaction report (CTR) that includes informationrelated to a database transaction for review. As described elsewhere inthis disclosure, one or more operations may be performed to generate orupdate an indicator that a transaction or set of transactions isanomalous. In addition, some embodiments may receive an acknowledgmentfrom an external entity indicating that a previously-sent aggregationvalue include one or more issues requiring correction and display one ormore report values indicated by the acknowledgment on the manager UI 401in real-time as the acknowledgment is received and stored in anacknowledgment records database. The user of the manager UI 401 mayinteract with the manager UI 401 to manually update transaction data oranother type of update message, where the update message may then besent to an API of the update service 404.

The update service 404 may perform various operations, such as storing aset of values associated with the update message in a first transactionsdatabase 408. In some embodiments, the first transactions database 408may be used to store transaction records or other update records, whereoperations to determine a hierarchy or associated entities of atransaction may be performed after storing transaction data is stored inthe first transactions database 408. In some embodiments, update service404 may perform operations to complete a transaction, where one or moreoperations may be performed to determine whether a previous transactionshould be rendered obsolete at a reaggregation service 412.

In some embodiments, the reaggregation service 412 may performoperations to determine whether a new transaction record should begenerated or if an existing transaction record should be updated. Inresponse to a determination that a new transaction record should begenerated, some embodiments may store the new transaction record in thereprocessed transactions database 416 as an initial record and indicatethe transaction has not been re-processed. In response to adetermination that an existing transaction record should be updated, thereaggregation service 412 may update the existing transaction record inthe reprocessed transactions database 416. Furthermore, some embodimentsmay perform operations to update a transaction record stored in thereprocessed transactions database 416 in response to receivinginstructions to update a transaction record for a previously-completedtransaction. Furthermore, some embodiments may permit a user to directlyupdate a record of the reprocessed transactions database 416, such aspermitting a user to use the manager UI 401 to update values stored in arecord of the reprocessed transactions database 416.

In some embodiments, a record may be categorized as obsolete. Forexample, some embodiments may receive instructions that apreviously-completed database transaction included an incorrecttransaction value. In response, some embodiments may perform operationsto render the corresponding record of the transaction obsolete, such asby storing an indicator indicating that the previously-completeddatabase transaction is obsolete in a record of the previously-completeddatabase transaction in the reprocessed transactions database 416.Additionally, some embodiments may perform a set of time-based jobscheduler operations to re-send failed transactions stored in thereprocessed transactions database 416 to the update service 404 forreview. Some embodiments may further determine that a related databasetransaction may be in the processing state. In response, someembodiments may send a message indicating that the related databasetransaction is obsolete or is otherwise anomalous to an obsoletetransaction API 428.

In some embodiments, the update service 404 may provide an updatemessage, such as a query, another type of database transaction request,or message that includes values of a database transaction to anaggregation and consolidation microservice 441 via a stream 424, wherethe stream 424 may include a messaging stream such as a Kafka messagingstream. Some embodiments may send multiple versions of an update messageto an API designed to process the update message into the stream 424 inthe event of one or more failures. Some embodiments may then performoperations to reprocess a transaction in the event of the failures. Forexample, the update service 404 may send a message via the stream APIindicating that a related transaction is obsolete. However, due to theasynchronous nature of database transactions in certain systems, therelated transaction may be locked or otherwise unavailable. Someembodiments may re-attempt sending the update message via the stream 424up to a threshold number of times, such up to three times, up to fivetimes or up to some other number of times greater than one in responseto a failure to receive an acknowledgment that a transaction wassuccessful.

As described above, the update service 404 may provide the updatemessage to the aggregation and consolidation microservice 441. Theaggregation and consolidation microservice 441 may collect data frommultiple transactions when determining a set of aggregation values. Someembodiments may store the set of aggregation values in the form of atransaction aggregation record. Some embodiments may further generate adocument based on the set of aggregation values for display on a userinterface or to be provided in a form readable by a word processingcomputer program. For example, some embodiments may generate a CTRdocument for internal or external consumption based on the set ofaggregation values. Some embodiments may store a transaction aggregationrecord or a document based on the transaction aggregation record in along-term object data store 448. Alternatively, or in addition, theaggregation and consolidation microservice 441 may send values to storein the real-time aggregation database 444, which, as further describedbelow, may include a distributed cache. The real-time aggregationdatabase 444 may be implemented in various forms, such as an Amazon AWSDynamoDB database, Google Datastore database, Google Bigtable database,Microsoft Azure Cosmos DB, etc. Some embodiments may reverse atransaction identifier or other transaction value to determine areversed index key (“reversed key”), where the reversed key is then usedto index an aggregation record when the aggregation record is storedinto the real-time aggregation database 444 or the long-term object datastore 448.

In some embodiments, the update service 404 may send a messageindicating the obsolescence of a transaction to an obsolete transactionAPI 428. Once the message is received by the obsolete transaction API428, a related service may indicate that a set of transaction valuesprovided by or generated from the data provided by the transaction. Areport, summarization, or other set of values may then be provided tothe real-time aggregation database 444, where the real-time aggregationdatabase 444 may be a distributed database, such as an Amazon AWS DynamoDB. By storing a set of transaction aggregation records in the real-timeaggregation database 444, some embodiments may increase the speed bywhich aggregation values may be retrieved based on a transaction. Asdescribed further below, such gains may be useful when a system isexpected to provide sub-second results while handling a plurality ofdatabase transaction requests.

FIG. 5 shows a second architecture of a system used to aggregate andconsolidate records, in accordance with one or more embodiments. Thearchitecture 500 shows a set of components, services, or data storesusable for performing one or more operations described in thisdisclosure. Some of the components and services of the architecture 500are divided into an aggregation microservice 580 and a consolidationmicroservice 581. In some embodiments, the aggregation microservice 580and the consolidation microservice 581 may be similar to or performfunctions similar to those performed by the aggregation andconsolidation microservice 441.

Some embodiments may receive a transaction request from a line ofbusiness (LOB) program 502. The LOB program 502 may transmit data to theaggregation microservice 580 in the form of stream 504, which may besimilar to the stream 424. In some embodiments, records or other data ofthe stream 504 may be sent to a lookback data analysis cluster 510. Thelookback data analysis cluster 510 may be part of or otherwise beaccessible to the long-term object data store 534, which may be similarto or perform operations similar to operations performed by thelong-term object data store 448. In some embodiments, a cron service 532may provide job scheduling service to update the long-term object datastore 534 with records or other data stored in a first transactionsdatabase 518, which is described further below.

An instance of the aggregation microservice 580 may receive updatemessages provided in the stream 504. A microservice instance may be aninstance of a microservice that includes a set of APIs that expose themicroservice other microservices or other applications and performs aone or more particular functions intended to be combined with otherfunctions. For example, a microservice instance may receive instructionsto update an aggregation database based on an identifier of atransaction aggregation record. and, in response, implement the updateto the transaction aggregation record. Some embodiments may scale amicroservice to account for increased or decreased use of themicroservice, such as by increasing the number of microservice instancesin operation.

Some embodiments may assign one or more category values to a transactionor plurality of transactions encoded in the stream 504 using atopic-labeling function 506 of the aggregation microservice 580. Forexample, some embodiments may label a transaction with one or more CTRtopics based on a transaction request encoded in the stream 504. Forexample, some embodiments may assign the topic “topic1” to a transactionrecord based a determination that transaction value is greater than ascore threshold and has a transaction type “cash.” Some embodiments mayalso use a lookback labeling function 508 of the aggregationmicroservice 580, where the lookback labeling function 508 may be usedto assign one or more topic labels to a transaction based on historicaltransaction information. For example, some embodiments may assign a setof CTR lookback topics to a set of transaction records based on theircorresponding transaction identifiers and other records associated withthose transaction identifiers.

In some embodiments, the topic-labeling function 506 or lookbacklabeling function 508 may be a part of or otherwise use outputs providedby a data platform 511 of the aggregation microservice 580. The dataplatform 511 may include various tools to provide operations such asdata aggregation, data cleaning, data feature engineering, dataanalysis, etc. For example, the data platform 511 may perform dataanalysis on transactions using machine learning models, and may includean Amazon EMR cluster, Google Cloud Dataproc, Microsoft Azure HDInsight,etc.

Other operations of the data platform 511 may include selecting acorresponding account record for a transaction record with an accountlookup function 512 of the aggregation microservice 580. For example, asdescribed elsewhere in this disclosure, some embodiments may obtain anidentifier of a transaction request or another update message and, inresponse, determine an index value based on the transaction identifier.As described elsewhere in this disclosure, some embodiments may reversea sequence of the identifier to obtain a reversed key. The reversed keymay be used to select a set of account records using the account lookupfunction 512. Alternatively, or in addition, operations of the dataplatform 511 may include determining an appropriate format to use asinput or provide in an output data transformation lookup function 514 ofthe aggregation microservice 580. For example, some embodiments may usean identifier of a transaction to determine a data format for outputusing a reverse key determined by reversing the identifier.

As described elsewhere in this disclosure, some embodiments may performoperations to dynamically modify a search parameter used to determinethe number of related records to search when obtaining information abouta record. In some embodiments, the data platform 511 may perform one ormore operations described in this disclosure to determine a searchparameter using a first machine learning model. In addition, someembodiments may use one or more components or services of the dataplatform 511 or accessible to the data platform 511 to determine whethera set of values of a transaction record, set of values of an accountrecord or another set of values satisfies a set of criteria indicatingan anomaly, where one or more identifiers may be reversed before beingused to retrieve a related record. For example, a data platform 511 mayupdate a record with a category value “TRIGGERED” after determining thata set of values obtained from a set of accounts satisfy a criterion thata sum of a set of values representing score changes of the set ofaccounts is greater than or equal to 10,000. Furthermore, a decisionsystem operating on the data platform 511 may update an account recordwith a category value “conductor” based on a set of aggregation valuesindicating that an account record is acting as a conductor of businesson behalf of another entity. For example, the decision system maydetermine that a first account record has been regularly transferring anamount to or from a second account record that has been indicated asanomalous. In response, the decisions system may categorize the firstaccount record with the category value “conductor,” which may be asubset of an indication of an anomaly.

In some embodiments, the data platform 511 may obtain a structuredupdate message indicating that a set of criteria of the update messagedoes not satisfy a set of criteria. Some embodiments may then analyzedifferent segments of the structured message to determine whether one ormore specific data field of the structured message is missing orerroneous. In response to a determination that a specified data field ismissing or erroneous, some embodiments may then send a warning messageto a user account that identifies or otherwise provides an indicator ofthe data field.

An instance of the aggregation microservice 580 includes a dataingestion library 516 that may be a part of or otherwise used by thedata platform 511. The data ingestion library 516 may be used to ingestdifferent types of data provided by a component of the data platform511. For example, the data ingestion library 516 may be used to obtain aset of update messages that are enriched with data from an accountrecord associated with a transaction for storage in a first transactionsdatabase 518 and a second transactions database 520, where theaggregation microservice 580 may include or otherwise access the firsttransactions database 518 and the second transactions database 520.

In some embodiments, the first transactions database 518 may be used tostore transaction records or other update messages in an unmodified formwith respect to an initial transaction request or a subsequent output ofa transaction. For example, the first transactions database 518 maystore a transaction identifier of a transaction request, a correspondingset of affected account records that are updated by the transactionrequest, and an amount changed by the transaction request, etc. In someembodiments, the first transactions database 518 may be similar to orperform operations similar to those performed by the first transactionsdatabase 408. In addition, some embodiments may use a time-based jobscheduler service such as the cron service 532 to archive data from thefirst transactions database 518 into the long-term object data store534.

In some embodiments, the second transactions database 520 may receive adifferent set of records from those received by the first transactionsdatabase 518. For example, the data ingestion library 516 may processoutputs provided by processes or services operating on the data platform511 organized by entities or account records. In some embodiments, atransaction record stored in the second transactions database 520 mayinclude features indicating associations with other records, accountrecords, etc. Furthermore, the time in which these processed records arestored in the second transactions database 520 may be temporary. Forexample, some embodiments may delete a record that has been stored inthe second transactions database 520 after a determination that aduration threshold corresponding to the record has been satisfied, wherethe duration threshold may be less than one hour, less one day, lessthan 30 days, less than one year, less than ten years, less than 50years, etc.

The aggregation microservice 580 may use a database stream, such as aDynamoDB stream, that streams events upon an update from a consolidationservice function 524 of the consolidation microservice 581 to the secondtransactions database 520. The consolidation service function 524 may beused to generate records for storage in a set of records of a firstaggregation records database 526 or the second aggregation recordsdatabase 528, where the consolidation microservice 581 may include oraccess the aggregation records database 526 or the second aggregationrecords database 528. In some embodiments, the first aggregation recordsdatabase 526 or second aggregation records database 528 may be similarto or perform operations similar to operations performed by thereal-time aggregation database 444. For example, some embodiments mayreverse an identifier of a first transaction record to determine areversed key and store an aggregation record indexed by the reversed keyin the first aggregation records database 526. Some embodiments may thenreverse the identifier of a second transaction record to reconstruct thereversed key, search for the first aggregation record using the reversedkey, and update the first aggregation record based on one or more valuesof the second transaction record.

Some embodiments may provide a set of aggregation values for an accountor entity identified by an account stored in the second aggregationrecords database 528 to an external API 530, which may be an API of anexternal server. For example, a record of the second aggregation recordsdatabase 528 may include a CTR document containing one or moreaggregation values. Some embodiments may retrieve the CTR document fromthe aggregation record and send the CTR document to a government servervia the external API 530.

FIG. 6 shows a third architecture of a system containing a microservice,in accordance with one or more embodiments. The third architecture 600includes a data packaging microservice 681, which includes a set of datapackaging APIs 682 and a set of data stores 683. The set of datapackaging APIs 682 may include a message-receiving function 608, arecord-generating function 616, a record-transferring function 620, andan acknowledgment processing function 650.

The set of data stores 683 of the data packaging microservice 681 mayinclude an acknowledgments data store 642 and a long-term data store646. Some embodiments may store one or more acknowledgments indicatingthat a message sent to an internal or external microservice or API wasreceived in the acknowledgments data store 642. For example, someembodiments may store acknowledgment records indicating that a CTRdocument was rejected. Some may then provide records from theacknowledgments data store 642 to acknowledgment processing function 650to update a corresponding record in the long-term data store 646. Insome embodiments, the acknowledgment processing function 650 may providea record associated with a rejected CTR document for review by a uservia a UI element in response to receiving the acknowledgment indicatingthat the CTR document has been rejected.

Some embodiments may receive update messages from a platform 602 at amessage-receiving function 608 of the set of data packaging APIs 682.The message-receiving function 608 may send a version of the updatemessage to the first record transfer database 612. In some embodiments,records or record values from the first record transfer database 612 maybe provided, as inputs, to a record-generating function 616 or arecord-transferring function 620. The record-generating function 616 maybe used to generate a record that may then be stored in the long-termdata store 646, where the record may include a CTR document.Alternatively, or in addition, the record-generating function 616 may beused to store or update a corresponding record in the first recordtransfer database 612.

In some embodiments, the record-transferring function 620. Someembodiments may secure (e.g., via encryption) or remove non-publicpersonal information (NPI) or payment card industry (PCI) informationfrom a set of transaction records or account records using a PCI/NPIfunction 624 of the data packaging microservice 681. In someembodiments, the record-transferring function 620 may provide a recordas an input to the PCI/NPI function 624 to remove protected information,where the record may then be provided to an outgoing data store 630. Insome embodiments, records of the outgoing data store 630 may then besent to an external API 655. In some embodiments, the external API 655may be similar to or perform operations similar to operations performedby the external API 530.

Example Flowcharts

FIGS. 7-8 are example flowcharts of processing operations of methodsthat enable the various features and functionality of the system asdescribed in detail above. The processing operations of each methodpresented below are intended to be illustrative and non-limiting. Insome embodiments, for example, the methods may be accomplished with oneor more additional operations not described, and/or without one or moreof the operations discussed. Additionally, the order in which theprocessing operations of the methods are illustrated (and describedbelow) is not intended to be limiting.

In some embodiments, the methods may be implemented in a system thatincludes one or more processing devices (e.g., a digital processor, ananalog processor, a digital circuit designed to process information, ananalog circuit designed to process information, a state machine, and/orother mechanisms for electronically processing information). Theprocessing devices may include one or more devices executing some or allof the operations of the methods in response to instructions storedelectronically on an electronic storage medium. The processing devicesmay include one or more devices configured through hardware, firmware,and/or software to be specifically designed for execution of one or moreof the operations of the methods.

FIG. 7 shows a flowchart of operations to determine a search parameterand whether a set of criteria are satisfied based on the searchparameter, in accordance with one or more embodiments. Operations of theprocess 700 may begin at operation 701. In an operation 701, a recordupdate for a record may be obtained. Some embodiments may detect arecord update that is caused by a database transaction identifying oneor more account records. For example, some embodiments may detect adatabase transaction causing a score change to a quantitative scorestored in a user account record.

The record update may include a set of identifiers, where theidentifiers may identify a database transaction(s) or a set of records.For example, some embodiments may obtain a record update in the form ofinstructions that identify a plurality of account records, such as afirst account record and another account record, where the record updatemay cause a score increase for a score of the first account record and ascore decrease for a score of the other account record. Additionally,the database transaction may indicate a corresponding score change in asecond user account record. For example, a record update may be ascore-changing record update that causes one or more scores stored in orotherwise associated with a record change to a different value. Ascore-changing record update may update the score in various ways, suchas by addition, multiplication, etc. For example, after obtaining ascore-changing record update, some embodiments may add a value encodedin the score-changing record update to a score stored in an accountrecord. As described in process 800 below, some embodiments may performa reverse indexing operation to retrieve the set of account records.

In an operation 704, a data structure associating different records maybe obtained. The data structure may indicate associations betweendifferent records and may be stored in various forms, such as a lineardata structure, tree data structure, hash data structure, or graph datastructure. Some embodiments may search through a data structure based onan initial record and a set of search parameters. Various searchparameters may be used and may depend on the data structure used toassociated different records.

In some embodiments, the data structure associating different recordsmay be a graph data structure. As described elsewhere in thisdisclosure, the graph data structure may be stored in the form of a setof arrays, where a first array may represent a set of graph edgesindicating the graph edges connecting different graph nodes, and whereeach respective graph node of the different graph nodes mapped to by arespective record. Some embodiments may search through a graph datastructure based on a search parameter such as a path distance threshold.In some embodiments, the search through the graph may start at a firstgraph node representing the initial record and proceed through pathsthat start from the first graph node to other graph nodes.

As described elsewhere in this disclosure, a graph edge may beassociated with a set of updates. The graph edge may include or beassociated with values based on the set of updates, such as a sum ofvalues determined based on a set of database transactions causing atransfer of a score value of a first record to a second record. Theassociated values may be stored as weight values associated with thegraph edges. For example, a graph edge that is directed from a firstgraph node to a second graph node may be assigned a weight value of“50,” which may indicate that the record mapped to by the first graphnode has a score change of “−50” while the record mapped to by thesecond graph node has a complementary score change of “+50.” Someembodiments may associate a plurality of weight values to a graph edge,where each weight value may indicate a different feature. Alternatively,or in addition, some embodiments may include a plurality of graph edgesbetween a pair of graph nodes. For example, a first graph edge may bedirected from a first graph node to a second graph node, the secondgraph edge may be directed from the first graph node to the second graphnode, and a third graph edge may be directed from the second graph nodeto the first graph node. Each respective graph edge of the three graphedges may be associated with a corresponding way to value. As discussedelsewhere in this disclosure, some embodiments may apply one or morethresholds to filter graph edges based on their corresponding weightvalues when searching for associated records.

In some embodiments, the data structure associating different recordsmay be the same data structure storing the different records. Forexample, if a set of records are stored in a relational database, suchas a SQL table, some embodiments may use the same type of relationaldatabase as the data structure associating the set of records. In someembodiments, a feature stored as a column of the SQL table may includean index value or other identifier of associated records in the SQLtable. For example, a first column of a first record in the SQL tablemay include an array of identifiers, each respective identifiercorresponding with another record of the SQL table. Some embodiments maythen traverse the SQL table directly based on the values of the firstcolumn to identify a set of records. Alternatively, some embodiments mayuse a different data structure type to associate records that are storedin a second type of data structure. For example, some embodiments maystore a set of transaction aggregation records in a key-value database,where the values of a key-value database are not required to share thesame number of features or the same data type. Some embodiments may usea key-value data store to store transaction aggregation types to improveadaptability and add additional features or data in association with atransaction aggregation record.

In an operation 708, a value may be assigned to the record using a firstmachine learning model. Some embodiments may assign a category value toa record based on an update history or other values stored in therecord. For example, some embodiments may use a feed-forward neuralnetwork that determines a neural network result using, as inputs, thetimes the record was updated, a time difference since a previous updateto the record, or the amounts by which a score stored in the record wasupdated. Alternatively, or in addition, some embodiments may assign aquantitative value to the record based on the update history or othervalues. For example, some embodiments may assign a risk score of “0.5”to an account record based the values of the account record.

Some embodiments may include other inputs for the machine learningnetwork, such as categories associated with the database transaction,where the categories may indicate various phenomena or features of atransaction, such as the type of computing device used to initiate atransaction or an institution-mandated category for a transaction. Forexample, the category value may be associated with a transaction type,such as “credit” or “debit.” For example, a machine learning model maybe provided the list [[“61”, “90”, “ATM”, “credit”],[“62”, “100”, “ATM”,“credit”],[“57”, “−1000”, “ATM”, “debit”]] as an input and output acategory value “type2” an neural network result.

Some embodiments may normalize a set of inputs before providing thenormalized results to the first machine learning model as inputs.Alternatively, or in addition, some embodiments may determine a measureof central tendency based on an initial set of inputs before providingthe measure(s) of central tendency to a machine learning model. Forexample, some embodiments may collect a history of updates, determine amean average score change of the previous five updates, and provide themean average score change as an input to a machine learning model.

Some embodiments may select different machine learning models based onthe type of data available for the machine learning model. Someembodiments may also select different machine learning models orparameters of the machine learning models based on computing constraintsor time constraints. For example, some embodiments may include alimitation that results of the first machine learning model be providedwithin 100 milliseconds (or another time threshold) and, in response,some embodiments may select a first neural network model having twoneural network layers. In some embodiments, the first neural networkmodel may have been selected from machine learning models that includedneural network models having different layers or other machine learningmodels such as other types of neural network models, support vectormachines, random forest, nearest neighbor, Naïve Bayes, etc. Forexample, some embodiments may obtain instructions to perform an extendedsearch parameter determination operation and, in response, select arecurrent neural network model from a plurality of neural network modelsin order to determine a neural network result that is then used todetermine a category value for a record.

Alternatively, or in addition, some embodiments may use a rule-basedsystem. A rule-based system may determine a category value for a recordbased on one or more criteria. Some embodiments may use a rule-basedsystem in conjunction with a first machine learning model to assign acategory value to a record. For example, some embodiments may firstdetermine whether a first record should be labeled with a category value“type1.” The determination may be based on whether a first graph nodemapping to the first record is adjacent to a second graph node mappingto a second record that is already labeled with the category value“type1” via a graph edge having a weight value that is greater than aweight value threshold. As used in this disclosure, a first record maybe described as adjacent to a second record if a first graph node and asecond graph node mapping to the first record and second record,respectively, are adjacent nodes. A first graph node is adjacent with asecond graph node if a graph edge connects the first graph node with thesecond graph node.

In an operation 712, a set of distance thresholds for the data structureassociating different records may be determined based on a result of thefirst machine learning model. In some embodiments, each category valueof the set of categories that may be assigned to a record may correspondwith a distance threshold. For example, the category value “Type1” maycorrespond with the distance threshold “1,” and the category value“Type2” may correspond with the distance threshold “2,” where eachdistance threshold may be one of a plurality of distance thresholds.

The application of the distance threshold may be based on the type ofdata structure that is being searched. For example, a first distancethreshold may be a path distance threshold for a graph data structurethat indicates the maximum number of graph edges that a search pathstarting from an initial graph node may have. For example, someembodiments may determine that a first account record is assigned acategory value of “type1,” which corresponds with the path distancethreshold “1,” and determine that a second account record is assigned acategory value of “type,” which corresponds with the path distancethreshold “3.” In some embodiments, the path distance threshold may bemapped to by a plurality of types. For example, some embodiments mayselect a path distance threshold of a plurality of path distancethresholds, where records labeled as “typeA” may be associated with thepath distance threshold “1” and records labeled as “typeB” and “typeC”may be associated with the path distance threshold “3.” Some embodimentsmay determine a distance threshold based on a quantitative scoreprovided by the first machine learning model. For example, afterdetermining a risk score “0.25” for a user account record, someembodiments may apply a binning operation or other operation to map therisk score to a path distance threshold.

Some embodiments may instead search within the boundary of a featurespace of a record. For example, some embodiments may obtain instructionsto search for records within a feature space distance of a targetrecord, where the range of the feature space may be bounded by a featurespace distance threshold. As further described below, some embodimentsmay assign a first category value to the target record based on adetermination that a threshold number of records are already labeledwith the first category value or some other category value.

In an operation 716, a set of values may be obtained based on thedistance threshold. Some embodiments may traverse through a recordsgraph via a set of paths to select a set of nodes that are within arange of a target record. As described elsewhere in this disclosure,traversing through the records graph may include determining arespective path from a first graph node mapping to the first record toother graph nodes, where the respective path distance of the respectivepath is less than or equal to the distance threshold, and where therespective path distance may be measured by the number of graph edgesthat must be visited to traverse the path. For example, some embodimentsmay perform a search starting from a first graph node representing afirst record and increment a counter by “1” for each graph edge taken bythe first graph node when traversing through a path through a recordsgraph. Some embodiments may continue traversing through the path whilethe counter is less than or equal to the path distance threshold, andstop updating the path or traversing through the path when the counteris equal to the path distance threshold. Alternatively, some embodimentsmay stop generating the path before the counter is equal to the pathdistance threshold.

By traversing through the set of paths, some embodiments may generate asubgraph that includes the graph nodes or graph edges visited by atleast one path of the set of paths. Some embodiments may then select thegraph nodes of the subgraph as a set of graph nodes associated with thefirst node. Some embodiments may then determine a set of valuesassociated with the set of nodes or the first node, such as quantitiesassociated with database transactions, frequencies of the transactions,cyclical quantities between the set of nodes, etc. As describedelsewhere in this disclosure, the set of values may be used as a set ofinputs to a decision model to determine whether the set of valuessatisfy a set of criteria that indicate an anomaly. By modifying thesearch parameter based on values of a record mapped to by the graphnode, some embodiments may dynamically scale the number of inputsprovided to the decision model.

In some embodiments, each respective value of the set of values or asubset of values of the set of values may be associated with a differentrecord update. For example, each respective value of the set of valuesmay be associated with a respective database transaction or otherrespective record update associated with a respective timestamp, wherethe respective record updates may be different from each other. In someembodiments, the record updates may be filtered based on a timethreshold, where each respective record update corresponding with arespective value of the set of values may have occurred after the timethreshold. For example, a first set of values may include a second setof values and a third set of values, where the second and third set ofvalues do not share any values. The second set of values may each beobtained based on the second set of records after the occurrence of afirst record update, which is indicated by a corresponding first updatetimestamp to have occurred after a time threshold. Similarly, the thirdset of values may each be obtained based on a third set of records afterthe occurrence of a second record update, where the second record updateoccurred after the first record update. Additionally, some embodimentsmay filter out a fourth set of record values based on the fourth set ofrecord values being collected before the time threshold.

In an operation 720, a determination may be made of whether the set ofrecord values satisfy a set of alert criteria indicating an anomaly.Some embodiments may determine whether the set of record values satisfythe set of alert criteria indicating an anomaly based on a decisionmodel. The decision model may include a second machine learning model oranother type of decision model. In some embodiments, different criteriaor subsets of criteria may correspond with different indicators ofanomalies. For example, some embodiments may label a transaction recordwith a first anomaly label if a first subset of the set of criteria issatisfied and label the transaction with a second anomaly label if asecond subset of the set of criteria is satisfied.

As described above, some embodiments may use a second machine learningmodel to determine whether the set of record values satisfy the set ofcriteria, where the set of criteria may include a criterion that anoutput of the second machine learning model is greater than a criterionthreshold. Various machine learning models may be used and may include aneural network to determine whether a set of alert criteria issatisfied. For example, some embodiments may use a trained recurrentneural network to determine a neural network result and determinewhether the neural network result satisfies a neural network resultthreshold. In response to a determination that the neural network resultsatisfies the neural network result threshold, some embodiments maydetermine that the set of record values satisfy the set of criteria.

For example, some embodiments may use a second machine learning modelthat includes a recurrent neural network to determine whether the set ofrecord values satisfies a set of alert criteria. Additionally, someembodiments may use a second machine learning model that includes theuse of a plurality of neural networks or uses a neural network(s) incombination with other operations. For example, some embodiments mayimplement a graph convolutional neural network to determine anintermediate neural network result(s) based on a subgraph determinedusing one or more operations described above and then use a recurrentneural network to determine an output neural network result based on theintermediate neural network result(s). In some embodiments, theseoperations may be combined in the form of a recurrent graph neuralnetwork.

Some embodiments may analyze changes in a graph and use those changes toconsider whether or not the set of record values satisfy the set ofalert criteria. For example, as described above, some embodiments maydetermine a subgraph by traversing a set of paths on a graph that aredetermined by in path distance threshold. Some embodiments may storeversions of the subgraph for a node representing a record and use thesubgraph or updates to the subgraph over time as inputs for the decisionmodel used to determine whether the set of alert criteria is satisfied.By using the first set of record values of a subgraph with an earlierset of record values of an earlier version of the subgraph, someembodiments may detect time-sensitive anomalies for a record.

Some embodiments may use other decision models to determine whether ornot the set of record values satisfy a set of criteria that indicatesthe record as an anomaly, such as a rule-based system to determine ifthe record value satisfies the set of criteria. For example, someembodiments may implement a rule that assigns the category value “type3”to a first record and determine that the first record satisfies the setof criteria based on a determination that at least one record within apath distance threshold of the first record in a records graph islabeled with the category value “type3.” In some embodiments, therule-based method may perform additional computations based on values ofa record. For example, some embodiments may label a record as an anomalybased on a determination a sum of the quantitative values of a pluralityof transactions of a first transaction type is greater than a sumthreshold.

Some embodiments may collect different sets of values for analysis,where each respective set of the different sets of values may share adata type or other feature. For example, some embodiments may determinethat a set of associated records of a first record includes threerecords. Some embodiments may then obtain a first set of scoresassociated with a first transaction type from the set of three recordsand a second set of scores associated with a second transaction typefrom the same set of three records. For example, some embodiments maycollect six different scores associated with a transaction type labeled“credit” and four different scores associated with a transaction typelabeled “debit.” As discussed further below, some embodiments thencompute a first sum of the set of six scores, compute a second sum ofthe set of four scores, and determine whether either the first or secondsum is equal to or greater than a sum threshold when determining whetherthe set of values satisfy a set of criteria indicating an anomaly. Inresponse to a determination that the record values satisfy the set ofcriteria, some embodiments may proceed to operations described byoperation 724. Otherwise, operations of the process 700 may proceed tooperations described for the operation 728.

In an operation 724, an alert message may be sent. The alert message mayinclude a warning indicating that one or more of the set of alertcriteria has been satisfied. The alert message may be sent to a useraccount, alert database, email address, other electronic messageaddress, etc. For example, some embodiments may send an alert messageindicating that a user account record is being labeled with the categoryvalue “conductor” to a manager UI.

In an operation 728, an indication of whether the record value satisfiesthe set of criteria may be stored. The indication of whether the recordvalue satisfies the set of criteria may be stored in a server, on acloud computing database, a storage memory device of a client computingdevice, etc. Some embodiments may send one or more messages to an API ofa server or other computing device, where the message may be encryptedbefore being sent to the API. For example, some embodiments may performoperations that include encrypting a set of record values indicated tohave satisfied the set of criteria using a public-key encryption method.

As described elsewhere in this disclosure, some embodiments may storethe record value in a record of a database capable of providingresponses to events in real-time. For example, some embodiments mayupdate an associated aggregation record stored in a real-timeaggregation database, where some embodiments may use a reversed keydetermined from a transaction value to retrieve the associatedaggregation record. Furthermore, some embodiments may store theaggregation record or an associated record in a distributed cache, wheresome embodiments may determine which aggregation records to store in acache based on an indicated anomaly of the aggregation record.

FIG. 8 shows a flowchart of operations to update a record and sendvalues of the updated record to a destination application programinterface, in accordance with one or more embodiments. In an operation804, an update message indicating an update to a first database isobtained. An update message may include an update to a database may beobtained in various ways, such as via an API or a user interface capableof sending requests to the first database. For example, obtaining anupdate message may include obtaining a database transaction request at afirst API of the first database, where the database transaction requestmay cause a change to a score of a record of the first database. Thedatabase transaction may include, be identified by, or otherwise beassociated with a first transaction identifier that is or otherwiseincludes a string of quantitative values. For example, a databasetransaction request including the transaction identifier “12345” may bereceived by a listener process that performs a database transactionindicated by the database transaction request and also provides aversion of the database transaction request to a set of other processesto perform one or more operations described in this disclosure.Alternatively, or in addition, some embodiments may obtain an updatemessage that is different from an update command itself, such as aprovided by an event listener indicating that a transaction request hasbeen obtained.

In an operation 808, the first database may be accessed based on thetransaction request. Some embodiments may access the first database viaa second API to store a record of the transaction. In some embodiments,the first database may be or include a transactions database that keepstrack of database transactions for a set of databases, such as anaccount database. For example, some embodiments may access a sequentialtransactions database to score a transaction entry in the sequentialtransactions database based on the database transaction request, wherethe transactions may be ordered by a time associated with the occurrenceof the transaction. Various to update a transaction entry in a databasemay include saving a transaction, updating a transaction, or permittingthe completion of a transaction.

As described elsewhere in this disclosure, some embodiments may reversean identifier of a transaction to obtain a reversed key that points toan account record or a record associated with the account record, suchas a transaction aggregation record that includes values of thetransaction. For example, a database transaction may be associated withthe transaction identifier “12345.” Some embodiments may then determinea reversed key “54321” by reversing the transaction identifier. Asdescribed elsewhere in this disclosure, by reversing the index value,some embodiments may increase the efficiency of computer memory accessby ensuring that different sections of a memory block are accessed evenwhen data associated with sequential transactions are being obtained. Ifa history of transactions is retrieved or updated, some embodiments maylock one or more transaction records or user account records to preventother functions from modifying the value(s) of the record before theretrieval or update operation is performed. Some embodiments mayincrease the efficiency of this process by ensuring that sequentialtransactions correspond with a record stored in separate memory blocksand thus increasing the efficiency of a set of record lock or unlockoperations.

In some embodiments, a transaction may include an identifier that may beseparated into a set of identifier portions, where one or more of theidentifier portions may be reversed independently. For example, atransaction identifier may include the first sequence,“123456789ABCDEF.” Some embodiments may segment the first sequence intoa first identifier portion, “123456789,” and a second identifierportion, “ABCDEF.” Some embodiments may then generate a first reversedkey by reversing the first identifier portion into the sequence“987654321” and a second reversed key by reversing the second identifierportion into the sequence “FEDCBA.” As discussed elsewhere in thisdisclosure, some embodiments may then use both the first and secondidentifier portions to retrieve a record that is indexed bothidentifiers. Alternatively, some embodiments may reverse a firstidentifier portion without reversing another identifier portion. Forexample, some embodiments may reverse the first identifier portion“123456789” into the reverse index “987654321” without reversing thesecond identifier portion “ABCDEF.”

In some embodiments, the record may be accessed from a UI, such as a UIof a case management application. For example, after receiving adatabase transaction request, some embodiments may update a databaserecord based on the database transaction request or send the databasetransaction request to a case management application. Some embodimentsmay then display values of the database transaction request on a UI ofthe case management application. As further described below, someembodiments may then modify one or more values of the transactionrequest. Alternatively, some embodiments may stop the transactionrequest or generate a flag for the account records identified by orotherwise associated with the transaction request.

In an operation 812, a determination of whether a second databaseincludes a record indexed by the index key of the transaction request ismade. Some embodiments may access a third API that connects to anaggregation database to determine whether an aggregation databaseincludes any transaction aggregation records indexed by the index key.As described elsewhere in this disclosure, the index key may be areversed key, which may be obtained by reversing an identifier stored inassociation with the transaction request.

In some embodiments, the aggregation database may be an independentdatabase or set of records. Alternatively, or in addition, theaggregation database may be part of or include another database, such asan account database. Alternatively, some embodiments may use anotherdatabase, such as the aggregation database as an aggregation database byupdating a value of the aggregation database with an aggregated value.For example, some embodiments may use an aggregation database toretrieve a feature, updating a record value of the aggregation databasewith an aggregated value, etc.

In some embodiments, the aggregation database or another databasedescribed in this disclosure may be accessed by accessing an API of amicroservice instance. The microservice instance may includefunctionality to determine whether a set of criteria are satisfied orobtain an indication that the set of criteria are satisfied. Forexample, some embodiments may determine whether a transactionaggregation record satisfies a set of criteria indicating an anomalyand, if satisfied, update the transaction aggregation record.Alternatively, or in addition, some embodiments may use a microserviceto generate verification messages based on a set of values. For example,some embodiments may provide a microservice instance with values of anaggregation record via an API of the microservice instance, such as ascore change to the record, a history of previous score changes to theaggregation record based on a set of updates, or another set of values.In response to being provided with the input values, the microserviceinstance may output a set of outputs indicating whether the aggregationrecord comprising at least one of the input values should be categorizedas an anomaly.

As discussed elsewhere in this disclosure, maintaining the aggregationdatabase may include complexities related to corrections ormodifications to previous entries and the generation of new associationswith respect to a record or value of the aggregation database. Moreover,a plurality of operations may attempt to access the aggregation databaseconcurrently, many of which may lock portions of the quantities databaseuntil the operation causing the lock is completed. These operations mayfrequently update transactions that are close to each other in time andthus likely to cause access delays or other issues. By reversing anindex key that is often generated in sequence, different portions of adatabase or other data structure may be isolated from each other whilecontaining values that are close together in sequence in anotherindexing system.

If a determination is made that the second database includes a recordindexed by the index key determined from the transaction request, someembodiments may proceed to operations described by the operation 816.Otherwise, operations may proceed to operations described by theoperation 820.

In an operation 816, a transaction aggregation record may be generatedand stored in the second database. Storing a transaction aggregationrecord may include generating a record as the transaction aggregationrecord and determining a transaction aggregation value, where thetransaction aggregation value is included in the transaction aggregationrecord. As described elsewhere in this disclosure, a transactionaggregation value may be a computed result of a function such as a sum,a weighted sum, a product, or some other value. In some embodiments, aninitial value for an aggregated value of a transaction aggregationrecord may be used directly as the aggregated value without additionaltransformations of the initial value. Alternatively, or in addition,some embodiments may transform the initial value, such as by normalizingthe initial value, approximating the initial value to a binned value,determining and storing a category value as the aggregated value basedon the initial value, etc.

In some embodiments, the transaction aggregation record may be generatedin a SQL database, where the index of the transaction aggregation recordis the reversed key determined from the transaction record using one ormore of the operations described above. Alternatively, a transactionaggregation record may be stored in a NoSQL database such as a key-valuedata store. For example, some embodiments may generate a transactionaggregation record in an Amazon AWS DynamoDB database.

In some embodiments, the transaction aggregation record may be generatedusing multiple transaction identifiers, where each transactionidentifier may correspond with a different identification level. Forexample, some embodiments may store a transaction aggregation recordusing a multi-level indexing system. As described elsewhere in thisdisclosure, some embodiments may reverse multiple identifiers orindependently reverse a plurality of identifier portions segmented froman initial identifier. Some embodiments may then generate a record thatis indexed by both the first reversed key in a first index level and asecond record that is indexed by a second index level.

Alternatively, or in addition, some embodiments may store a transactionaggregation value in an existing record of a database. For example,after a determination that an account record does not include anaggregated value, some embodiments may include an initial value of atransaction record two the account record. Furthermore, some embodimentsmay store a record of a database transaction or values used to performthe database transaction in a long-term storage database. The long-termstorage database may include a set of historical records for databasetransactions that are not present in shorter-term storage databases,such as a distributed cache. For example, some embodiments may store atransaction record indicating a database transaction in both adistributed cache and in a long-term object data store to storehistorical records such that at least one historical record indicates atransaction that occurred on a date before any transaction indicated bythe records stored in the distributed cache had occurred.

In an operation 820, a record of the second database is obtained basedon the reversed key. In some embodiments, the reversed key may be usedto retrieve a transaction aggregation record. As described elsewhere inthis disclosure, by reconstructing the reversed key from an identifierobtain in association with a transaction, some embodiments may reducethe time used to search through an aggregation database and retrieve atransaction aggregation record associated with the transaction.

Some embodiments may reduce the time required to retrieve the record bystoring the record in a cache memory, as opposed to persistent memory.Some embodiments may store data in cache memory of a distributedcomputing system, where the cache memory itself may be a distributedcache memory. Some embodiments may select specific records for storagein the distributed cache memory or store reduced-data versions of therecord in a distributed cache memory to reduce the amount of data storedin a distributed cache memory. For example, using one or more operationsdescribed for the operation 708, some embodiments label a first accountrecord with the category value “type1” and a second account record withthe category value “type2”, and, in response, store the first accountrecord in a non-cache memory and store the second account record in thedistributed cache memory.

In an operation 824, a value of the obtained record may be updated withvalues of a set of associated records associated with the obtainedrecord. A value of an obtained record may be updated by associating thevalue of the obtained record with a set of other values obtained fromthe set of associated records. In some embodiments, the obtained recordmay be updated based on values of the set of associated records.Alternatively, or in addition, some embodiments may store value(s) ofthe obtained record in conjunction with values of the set of associatedrecords in non-persistent memory storage to be validated or sent to adestination API, as further described below.

A value of a retrieved transaction aggregation record may be collectedin association with a name, account creation date, or transactioncategory that is retrieved from an account record associated with theretrieved transaction aggregation record. Alternatively, or in addition,the value of the retrieved transaction aggregation record that maps toor is otherwise associated with a first account record may be collectedwith values of other transaction aggregation records. In someembodiments, the other transaction aggregation records may be mapped toor otherwise associated with other account records connected to thefirst account record. For example, some embodiments may use one or moreof the operations described above to select a path distance threshold ofa plurality of path distance thresholds for a first account record anddetermine a set of associated account records within the path distancethreshold of the first account record in a graph. Some embodiments maythen retrieve transaction aggregation values associated with the set ofassociated account records to update the first obtained record or avalue of the first obtained record.

In an operation 832, a determination may be made if whether a set ofcriteria indicating an anomaly is satisfied based on the updated record.As described elsewhere in this disclosure, some embodiments may validatean obtained record based on a set of criteria. Operations to validatethe retrieved criteria may be similar to operations described for theoperation 720. In some embodiments, the first set of criteria may be orotherwise include a set of criteria that, upon satisfaction, may cause amessage to be sent to an API indicating that a record should be deleted,discarded, or marked as obsolete.

Some embodiments may implement a rule-based system to determine if thetransaction aggregation value is greater than a transaction aggregationthreshold, such as 10,000. A determination that the transactionaggregation value is greater than 10,000 may cause a determination thatthe set of criteria is satisfied. Alternatively, or in addition, theimplementation of the rule-based system may include a determination ofwhether a first transaction aggregation value and other transactionaggregation values associated with the first transaction aggregationvalue are greater than or equal to a transaction aggregation threshold.

As described elsewhere in this disclosure, some embodiments mayassociate a record with a category value that indicates that the recordsatisfies the set of criteria if an adjacent record is already assignedwith the category value. For example, some embodiments may determinethat a first record should be labeled with a category value “anomaly1”using one or more operations described in this disclosure. Someembodiments may then receive instructions to determine whether a secondrecord should be labeled with the category value “anomaly1.” Based on adetermination that the second record is stored in association with thefirst record, (e.g., as adjacent records in a records graph or otherwiselinked by at least one database transaction), some embodiments may labelthe second record with the category value “anomaly1.”

In some embodiments, a transaction request or other update message maybe obtained in the form of a structured message, such as an updatemessage in the form of a JSON file format indicating data fields andtheir corresponding values. Some embodiments may use the format of thestructured message to determine whether one or more specific data fieldof the structured message triggers one or more criteria, where atriggered criterion may indicate a data field that is missing acorresponding value or is filled with an erroneous value. For example,after receiving a structured update message “{transactID: “12345abcd”,giver: “900 us”, taker: “900mx”}, some embodiments may determine thatthe structured update message is incorrect based on a criterionrequiring that a giver amount and a taker amount be equal. In responseto a determination that an indicated data field is erroneous or missing,some embodiments may then send an alert to a user account thatidentifies the indicated data field. Alternatively, or in addition, someembodiments may replace or augment the missing or erroneous values witha default set of values to increase computational efficiency.

In some embodiments, an update message may include a plurality ofaggregated values, where a first aggregated value may be associated witha first category and a second aggregated value may be associated with asecond category. For example, a first aggregated value may be associatedwith a first transaction type “credit” and a second aggregated value maybe associated with a second transaction type “debit.” Some embodimentsmay determine that the first aggregated value is greater than or equalto a first threshold corresponding to the first transaction type andthat the second aggregated value is greater than or equal to a secondthreshold corresponding to the second transaction type, even if a sum ofa previous set of transaction requests of either the first or secondtransaction type did not previously satisfy either the first or secondthresholds, respectively. As further described below, some embodimentsmay update an aggregation record in response to a determination thateither or both of the first and second thresholds are satisfied. Adetermination that the updated record satisfies the set of recordobsolescence criteria may cause operations of the process 800 proceed tooperations described for the operation 840. Otherwise, operations of theprocess 800 may proceed to operations described for the operation 844.

In an operation 840, some embodiments may indicate the record isanomalous. In some embodiments, the indication that the record isanomalous may be used to update a record, as further described below.Alternatively, or in addition, some embodiments may perform additionaloperations in response to a determination that the record is categorizedwith a category value indicating an anomaly. For example, someembodiments may label the transaction aggregation record with a categoryvalue indicating that a previous version of the transaction aggregationrecord is obsolete. For example, after a determination that an accountrecord is associated with a transaction aggregation value that isgreater than 10,000, some embodiments may set a variable of the accountrecord to “obsolete.” As described elsewhere in this disclosure, thismay result in the deletion or discarding of a version of the accountrecord or other record.

Some embodiments may further update other data stores to indicate ananomaly. For example, some embodiments may send a message to adestination API indicating that a previous version of a transactionaggregation record or a corresponding account record is obsolete. Bysending a message indicating record obsolescence, some embodiments mayprevent double analysis or inaccurate analysis of the data performed bya system receiving the message. Alternatively, or in addition, someembodiments may send an updated version of the transaction aggregationrecord and, upon a determination that the updated version of thetransaction aggregation record is different, some embodiments mayautomatically flag the previous version of the transaction aggregationrecord as obsolete. Furthermore, as described elsewhere in thisdisclosure, a set of criteria may include a plurality of thresholds orother criteria, and some embodiments may indicate which of thethresholds or other criteria are satisfied. For example, someembodiments may determine that a first and second thresholds aresatisfied by values of an aggregation record. In response, someembodiments may concurrently or sequentially update an aggregationrecord by storing the first and second aggregation values in theaggregation record along with an indicator(s) that the values for boththe first and second transaction types are anomalous.

In an operation 844, some embodiments may send the updated record to adestination API. Some embodiments may re-format the updated recordbefore sending the record to the destination API. Some embodiments maygenerate a document based on the updated record by filling fields of thedocument with values of the updated record. For example, someembodiments may generate a CTR document based on the updated record andsend the CTR document to the destination API. Alternatively, or inaddition, some embodiments may change the units, change the order bywhich values of the updated record are stored or displayed, removecertain fields, or add certain fields to a set of values of the updatedrecord that are to be sent to the destination API.

In some embodiments, the various computers and subsystems illustrated inFIG. 1 may include one or more computing devices that are programmed toperform the functions described herein. The computing devices mayinclude one or more electronic storages (e.g., e.g., database(s) 132,which may include training database(s) 134, transactions database(s)136, account database(s) 138, etc., or other electronic storages), oneor more physical processors programmed with one or more computer programinstructions, and/or other components. The computing devices may includecommunication lines or ports to enable the exchange of information withone or more networks (e.g., network(s) 150) or other computing platformsvia wired or wireless techniques (e.g., Ethernet, fiber optics, coaxialcable, WiFi, Bluetooth, near field communication, or othertechnologies). The network(s) 150 may include a network operating overthe Internet, a mobile phone network, a mobile voice or data network(e.g., a 4G or LTE network), a cable network, a public switchedtelephone network, or other types of communications network orcombinations of communications networks. The computing devices mayinclude a plurality of hardware, software, and/or firmware componentsoperating together. For example, the computing devices may beimplemented by a cloud of computing platforms operating together as thecomputing devices.

The electronic storages may include non-transitory, computer-readablestorage media that electronically stores information. The storage mediaof the electronic storages may include one or both of (i) system storagethat is provided integrally (e.g., substantially non-removable) withservers or user devices; or (ii) removable storage that is removablyconnectable to the servers or user devices via, for example, a port(e.g., a USB port, a firewire port, etc.) or a drive (e.g., a diskdrive, etc.). The electronic storages may include one or more ofoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.),and/or other electronically readable storage media. The electronicstorages may include one or more virtual storage resources (e.g., cloudstorage, a virtual private network, and/or other virtual storageresources). The electronic storage may store software algorithms,information determined by the set of processors, information obtainedfrom servers, information obtained from user devices, or otherinformation that enables the functionality as described herein.

The processors may be programmed to provide information processingcapabilities in the computing devices. As such, the processors mayinclude one or more of a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information. In someembodiments, the processors may include a plurality of processing units.These processing units may be physically located within the same device,or the processors may represent processing functionality of a pluralityof devices operating in coordination. The processors may be programmedto execute computer program instructions to perform functions describedherein of subsystems or other components. The processors may beprogrammed to execute computer program instructions by software;hardware; firmware; some combination of software, hardware, or firmware;and/or other mechanisms for configuring processing capabilities on theprocessors.

It should be appreciated that the description of the functionalityprovided by the different subsystems or other components describedherein is for illustrative purposes, and is not intended to be limiting,as any of subsystems other components may provide more or lessfunctionality than is described. For example, one or more of subsystemsmay be eliminated, and some or all of its functionality may be providedby other ones of the subsystems.

Although the present invention has been described in detail for thepurpose of illustration based on what is currently considered to be themost practical and preferred embodiments, it is to be understood thatsuch detail is solely for that purpose and that the invention is notlimited to the disclosed embodiments, but, on the contrary, is intendedto cover modifications and equivalent arrangements that are within thescope of the appended claims. For example, it is to be understood thatthe present invention contemplates that, to the extent possible, one ormore features of any embodiment may be combined with one or morefeatures of any other embodiment.

As used throughout this application, the word “may” is used in apermissive sense (i.e., meaning having the potential to), rather thanthe mandatory sense (i.e., meaning must). The words “include”,“including”, and “includes” and the like mean including, but not limitedto. As used throughout this application, the singular forms “a,” “an,”and “the” include plural referents unless the context clearly indicatesotherwise. Thus, for example, reference to “an element” includes acombination of two or more elements, notwithstanding use of other termsand phrases for one or more elements, such as “one or more.” The term“or” is non-exclusive (i.e., encompassing both “and” and “or”), unlessthe context clearly indicates otherwise. Terms describing conditionalrelationships (e.g., “in response to X, Y,” “upon X, Y,” “if X, Y,”“when X, Y,” and the like) encompass causal relationships in which theantecedent is a necessary causal condition, the antecedent is asufficient causal condition, or the antecedent is a contributory causalcondition of the consequent (e.g., “state X occurs upon condition Yobtaining” is generic to “X occurs solely upon Y” and “X occurs upon Yand Z”). Such conditional relationships are not limited to consequencesthat instantly follow the antecedent obtaining, as some consequences maybe delayed, and in conditional statements, antecedents are connected totheir consequents (e.g., the antecedent is relevant to the likelihood ofthe consequent occurring). Statements in which a plurality of attributesor functions are mapped to a plurality of objects (e.g., one or moreprocessors performing steps/operations A, B, C, and D) encompasses bothall such attributes or functions being mapped to all such objects andsubsets of the attributes or functions being mapped to subsets of theattributes or functions (e.g., both all processors each performingsteps/operations A-D, and a case in which processor 1 performsstep/operation A, processor 2 performs step/operation B and part ofstep/operation C, and processor 3 performs part of step/operation C andstep/operation D), unless otherwise indicated. Further, unless otherwiseindicated, statements that one value or action is “based on” anothercondition or value encompass both instances in which the condition orvalue is the sole factor and instances in which the condition or valueis one factor among a plurality of factors. Unless the context clearlyindicates otherwise, statements that “each” instance of some collectionhave some property should not be read to exclude cases where someotherwise identical or similar members of a larger collection do nothave the property (i.e., each does not necessarily mean each and every).Limitations as to sequence of recited steps should not be read into theclaims unless explicitly specified (e.g., with explicit language like“after performing X, performing Y”) in contrast to statements that mightbe improperly argued to imply sequence limitations, (e.g., “performing Xon items, performing Y on the X'ed items”) used for purposes of makingclaims more readable rather than specifying sequence. Statementsreferring to “at least Z of A, B, and C,” and the like (e.g., “at leastZ of A, B, or C”), refer to at least Z of the listed categories (A, B,and C) and do not require at least Z units in each category. Unless thecontext clearly indicates otherwise, it is appreciated that throughoutthis specification discussions utilizing terms such as “processing,”“computing,” “calculating,” “determining” etc. refer to actions orprocesses of a specific apparatus, such as a special purpose computer ora similar special purpose electronic processing/computing device. Asused in this application, updating data may include modifying dataalready stored in a storage or creating the data and storing thenewly-created data in storage.

The present techniques will be better understood with reference to thefollowing enumerated embodiments:

1. A method comprising: obtaining a database transaction requestassociated with a first transaction identifier via a first API, whereinthe database transaction request comprises a first value; accessing asecond API of a sequential transactions database to store a transactionentry in the sequential transactions database based on the databasetransaction request; generating a reversed key by reversing the firsttransaction identifier; accessing a third API of an aggregation databaseto determine whether the aggregation database comprises any transactionaggregation records indexed by the reversed key; in response to adetermination that the aggregation database does not store anytransaction aggregation records indexed by the reversed key, generatinga transaction aggregation record comprising the first value in theaggregation database, wherein the transaction aggregation record isindexed with the reversed key in the aggregation database; obtaining anupdate message indicating an update to the sequential transactionsdatabase, wherein the update message comprises a second transactionidentifier and a second value, and wherein the first API was not used toupdate the sequential transactions database; reversing the secondtransaction identifier to reconstruct the reversed key; searching theaggregation database with the reversed key to retrieve the transactionaggregation record; updating the transaction aggregation record based onthe second value; and sending the transaction aggregation record to thedestination API after updating the transaction aggregation record withthe second value.2. A method comprising: obtaining a transaction request associated witha first identifier via a first application program interface (API),wherein the transaction request comprises a first value; accessing asecond API of a first database to store an entry in the first databasebased on the transaction request; determining a reversed key byreversing at least a portion of the first identifier; accessing a thirdAPI of a second database to determine whether any records indexed by thereversed key is stored in the second database; generating a record inthe second database in response to a determination that the seconddatabase does not store any records indexed by the reversed key, whereinthe record is indexed with the reversed key in the second database, andwherein the record comprises the first value; obtaining an updatemessage indicating an update to the first database, wherein the updatemessage comprises a second identifier and a second value; reversing atleast a portion of the second identifier to reconstruct the reversedkey; searching the second database with the reversed key to retrieve therecord; updating the record based on the second value; and sending therecord to a fourth API after updating the record based on the secondvalue.3. A method comprising: obtaining a transaction request associated withan identifier via a first application program interface (API), whereinthe transaction request comprises a first value; accessing a firstdatabase to store an entry in the first database based on thetransaction request; determining an index key by reversing at least aportion of the identifier; generating a record in a second databasebased on the first value, wherein the record is indexed with the indexkey in the second database; obtaining an update message indicating anupdate to the first database, wherein the update message comprises afirst update value and a second update value; reversing the first updatevalue to reconstruct the index key; searching the second database withthe index key to retrieve the record; updating the record based on thesecond update value; and sending the record to a second API of a serverafter updating the record based on the second update value.4. The method of any of the preceding embodiments, wherein: accessingthe third API comprises accessing a microservice instance of theaggregation database; generating the transaction aggregation recordcomprises generating a first version of the transaction aggregationrecord; updating the transaction aggregation record comprises generatinga second version of the transaction aggregation record; determiningwhether the second version of the transaction aggregation recordsatisfies a set of criteria; sending a first message comprising anidentifier of the first version of the transaction aggregation record tothe microservice instance in response to a determination that thetransaction aggregation record satisfies the set of criteria; and thefirst message comprises the reversed key and indicates that the firstversion of the transaction aggregation record is obsolete.5. The method of any of the preceding embodiments, wherein sending thefirst message further comprises preventing further reading or updatingvalues of the first version of the transaction aggregation record storedin the aggregation database until the first version of the transactionaggregation record is indicated as obsolete.6. The method of any of the preceding embodiments, wherein: the databasetransaction request is obtained in association with a first transactiontype; the transaction aggregation record comprises a first indicatorindicating that the first value is associated with the first transactiontype; the transaction aggregation record comprises a first aggregatedvalue based on the first value associated with the first transactiontype, the first aggregated value being greater than or equal to thefirst value; obtaining the update message comprises determining a secondaggregated value; the second aggregated value is greater than or equalto a sum of a set of values of a second set of transaction requestscategorized as a second transaction type; and updating the transactionaggregation record comprises storing the second aggregated value in thetransaction aggregation record in association with the secondtransaction type.7. The method of any of the preceding embodiments, further comprising:associating the record with a category value in the second database,wherein the category value indicates that the record satisfies a set ofcriteria; determining whether the record is stored in association withthe category value; and sending the record to the fourth API in responseto a determination that the record is associated with the category valuein the second database.8. The method of any of the preceding embodiments, further comprising:sending the record to a fifth API of a microservice instance, wherein anexecution of the microservice instance comprises determining whethervalues of the record satisfies a set of criteria; receiving averification message from the microservice instance indicating that therecord satisfies the set of criteria; and sending the record to thefourth API in response to receiving the verification message.9. The method of any of the preceding embodiments, wherein the record isa first record, and wherein the transaction request is a firsttransaction request, further comprising: obtaining a second transactionrequest; generating a second record based on the second transactionrequest; sending the second record to the fifth API; receiving a secondmessage from the microservice instance indicating that the secondmessage does not satisfy the set of criteria; and sending an alert to auser account indicating that the second record does not satisfy the setof criteria.10. The method of any of the preceding embodiments, further comprising:determining whether the set of criteria has been updated, wherein theset of criteria have been updated after the record was sent to the fifthAPI; and re-sending the record to the fifth API based on a determinationthat the set of criteria has been updated.11. The method of any of the preceding embodiments, wherein the seconddatabase comprises a key-value data store.12. The method of any of the preceding embodiments, further comprisingcaching a set of values of the record in a distributed cache memory,wherein retrieving the record comprises retrieving the set of valuesfrom the distributed cache memory.13. The method of any of the preceding embodiments, further comprising:receiving a structured message indicating that the record does notsatisfy a set of criteria; determining a data field of the recordassociated with a failure to satisfy the set of criteria based on thestructured message; and sending an alert to a user account, wherein thealert identifies the data field.14. The method of any of the preceding embodiments, wherein the reversedkey is a first reversed key, further comprising: wherein the firstidentifier comprises a first identifier portion and a second identifierportion; determining the reversed key comprises reversing the firstidentifier portion to determine the first reversed key and reversing thesecond identifier portion to determine a second reversed key; andsearching the second database comprises: searching the second databaseusing the first reversed key; and searching the second database usingthe second reversed key.15. The method of any of the preceding embodiments, further comprising:selecting a first user account based on the transaction request;determining an entity account associated with the first user account,wherein a plurality of accounts is permissioned to update a quantitativefield of the entity account, and wherein the plurality of user accountscomprises the first user account; determining a sum of values by summinga set of transaction values, wherein the set of transaction values isassociated with the plurality of accounts, and wherein the set oftransaction values comprises the first value; determining whether thesum of values satisfies a threshold, wherein generating the recordcomprises generating the record in response to a determination that thesum of values satisfies the threshold.16. The method of any of the preceding embodiments, further comprising:selecting a user account based on the transaction request; retrieving anode of a graph based on the user account, wherein each respective nodeof a plurality of nodes of the graph is associated with a respectiveaccount; determining a plurality of accounts based on the node;determining a sum of values by summing a set of transaction values,wherein the set of transaction values is associated with the pluralityof accounts, and wherein the set of transaction values comprises thefirst value; and determining whether the sum of values satisfies athreshold, wherein generating the record comprises generating the recordin response to a determination that the sum of values satisfies thethreshold.17. The method of any of the preceding embodiments, further comprising:determining whether the record indicates an anomaly by providing a setof values of the record to a neural network model as an input;associating the record with an anomaly indicator in response to adetermination that the record indicates the anomaly; and sendinginstructions comprising the set of values to a client computing device,wherein the instructions causes the client computing device to displaythe set of values.18. The method of any of the preceding embodiments, further comprisingsending the record to a third database, wherein the third databasestores a history of records that comprises historical records indicatingdatabase transactions that occurred on a date before any transactionsindicated by records stored in the second database.19. The method of any of the preceding embodiments, further comprising:obtaining a second transaction request associated with a secondidentifier via the first API, wherein the transaction request comprisesa third value; and determining whether a first sum comprising the firstvalue and the third value is greater than a threshold, whereingenerating the record in the second database comprises generating therecord in response to a determination that the first sum is greater thanthe threshold.20. The method of any of the preceding embodiments, wherein updating therecord comprises adding the first value to the second update value.21. A non-transitory, computer-readable media storing instructions that,when executed by one or more processors, effectuate operationscomprising those of any of embodiments 1 to 20.22. A system comprising: one or more processors; and memory storinginstructions that, when executed by the processors, cause the processorsto effectuate operations comprising those of any of embodiments 1 to 20.23. A method comprising: detecting a record update related to anaccount; obtaining, based on a record update, an account record thatidentifies the account, wherein the record update indicates the accountrecord and at least one other account record; providing an updatehistory stored in the account record to a first machine learning modelto assign a category value of a plurality of categories to the accountrecord; obtaining a records graph comprising a node mapping to theaccount record, wherein a graph edge associating adjacent nodes of therecords graph indicates a set of updates identifying the adjacent nodesor a shared identifier between the adjacent nodes; selecting a firstpath distance threshold of a plurality of path distance thresholds basedon the category value, wherein the first path distance threshold is lessthan a second path distance threshold of the plurality of path distancethresholds; traversing the records graph via a set of paths to select aset of nodes of the records graph, such that 1) each respective path ofthe set of paths begins at the node mapping to the account record and 2)a maximum path distance of the set of paths is less than or equal to thefirst path distance threshold; determining a set of record valuesassociated with the set of nodes, wherein each respective value of theset of record values is stored in a respective record identified by arespective node of the set of nodes; providing the set of record valuesto a second machine learning model to determine whether the recordupdate satisfies a set of criteria; and storing the record update in anaggregated set of record updates in response to a determination that therecord update satisfies the set of criteria.24. A method comprising: detecting a record update associated with afirst record; obtaining a first set of records that are associated witheach other in a data structure, wherein the first set of recordscomprises the first record; determining a distance threshold based onrecord values stored in association with the first record using amachine learning model; selecting a second set of records of the firstset of records based on the first record and the distance threshold,wherein each respective record of the second set of records is withinthe distance threshold from the first record; determining a set ofvalues associated with the second set of records, wherein eachrespective value of the set of values is associated with a respectiverecord of the second set of records; providing the set of values to adecision model to determining whether the record update satisfies a setof criteria; and storing an indication that the record update satisfiesthe set of criteria.25. A method comprising: detecting a record update; retrieving a recordassociated with the record update; determining a category value of aplurality of categories based on the record using a machine learningmodel; selecting a distance threshold of a plurality of distancethresholds based on the category value; obtaining a data structurecomprising a first set of records, wherein the first set of recordscomprises the record; selecting a second set of records of the first setof records based on the record and the distance threshold by usingassociations encoded in the data structure, wherein each respectiverecord of the second set of records is bounded by the distance thresholdfrom the record; determining a set of values associated with the secondset of records, wherein each respective value of the set of values isassociated with a respective record of the second set of records;providing the set of values to a decision model to determine whether therecord update satisfies a set of criteria; and storing an indicationthat the record update satisfies the set of criteria based on adetermination that the record update satisfies a set of criteria.26. The method of any of embodiments 23 to 25, wherein the categoryvalue is a first category value, and wherein the record update is afirst record update, and wherein the update history is a first updatehistory, and wherein the account record is a first account record, andwherein the node mapping to the account record is a first node, andwherein the set of nodes is a first set of node, and wherein the set ofrecord values is a first set of record values, and wherein the set ofpaths is a first set of paths, the operations further comprising:detecting a second record update to a second user; obtaining, based onthe second record update, a second account record that identifies thesecond user; providing a second update history stored in the secondaccount record to the first machine learning model to assign a secondcategory value of the plurality of categories to the second accountrecord, wherein the second category value is different from the firstcategory value; selecting the second path distance threshold of theplurality of path distance thresholds based on the second categoryvalue; traversing the records graph via a second set of paths to selecta second set of nodes, such that 1) each respective path of the secondset of paths begins at a second node mapping to the second accountrecord, 2) a maximum path distance of the second set of paths is lessthan or equal to the second path distance threshold, and 3) the pathdistance between at least one node of the second set of nodes and thesecond node is greater than the path distance between any node of thefirst set of nodes and the first node; determining a second set ofrecord values associated with the second set of nodes; and providing thesecond set of record values to the second machine learning model todetermine whether the second record update satisfies the set ofcriteria.27. The method of any of embodiments 23 to 26, wherein determining thesecond category value comprises: determining whether the second recordupdate identifies a record already labeled with the second categoryvalue; based on a determination that the second record update identifiesthe record already labeled with the second category value, providing thefirst machine learning model with an input value indicating that thesecond record update identifies the record already labeled with thesecond category value; and assigning the second category value to thesecond account record.28. The method of any of embodiments 23 to 27, wherein the set of recordvalues is a first set of record values, and wherein providing the set ofrecord values to the second machine learning model comprises: selectinga neural network model of a plurality of neural network models based onthe category value, wherein the neural network model comprises a graphconvolutional network and a recurrent neural network; obtaining asubgraph, wherein the subgraph comprises identifiers of the set of nodesand a set of graph edges connecting the set of nodes; obtaining anearlier set of record values associated with the set of nodes, whereinthe earlier set of record values does not include a record value of thefirst set of record values; providing the subgraph, the first set ofrecord values and the earlier set of record values to the neural networkmodel to determine whether the record update satisfies the set ofcriteria.29. The method of any of embodiments 23 to 28, wherein the machinelearning model comprises a feed forward neural network.30. The method of any of embodiments 23 to 29, wherein the record is afirst record, and wherein selecting the second set of records comprises:selecting a second record that is indicated by an indicator as beingassociated with the first record, wherein the second record is indicatedto have been updated with a score-changing record update that identifiesthe first record; incrementing a counter by one; and determining whetherthe counter satisfies the distance threshold.31. The method of any of embodiments 23 to 30, wherein the record is afirst record, the operations further comprising: determining a distancebetween a second record and the first record in a feature space of thefirst record and the second record; determining whether the distancesatisfies the distance threshold; and include the second record to thesecond set of records based on a determination the distance satisfiesthe distance threshold.32. The method of any of embodiments 23 to 31, wherein determining thatthe record update satisfies the set of criteria comprises: determining asum of at least some values of the set of values; determining whetherthe sum is less than a sum threshold, wherein satisfying the set ofcriteria comprises determining that the sum is less than the sumthreshold.33. The method of any of embodiments 23 to 32, wherein, for eachrespective value of the set of values: the respective value isassociated with a respective record update; the respective valueindicates an increase in a score associated with the record in responseto the respective record update; and the operations comprise:determining whether the respective record update has occurred after atime threshold; and including the respective value in the set of valuesbased on a determination that the respective record update has occurredafter the time threshold.34. The method of any of embodiments 23 to 33, wherein the distancethreshold is a first distance threshold, and wherein the record updateis a first record update, and wherein the category value is a firstcategory value, the operations further comprising: retrieving a secondrecord associated with a second record update; determining a secondcategory value of the plurality of categories based on data associatedwith the second record, and wherein the second category value isdifferent form the first category value; selecting a second distancethreshold of the plurality of distance thresholds based on the secondcategory value; selecting a third set of records of the first set ofrecords based on the second record and the distance threshold, whereineach respective distance between the second record and a respectiverecord of the third set of records is within the distance threshold;determining a second set of values associated with the third set ofrecords, wherein each respective value of the second set of values isassociated with a respective record of the third set of records; andproviding the second set of values to the decision model to determinewhether the second record update satisfies the set of criteria.35. The method of any of embodiments 23 to 34, wherein: determining thesecond category value comprises determining that a first user identifiedby the second record has had at least one record update identifying asecond user; the second user is identified by a third record; the seconduser is indicated to have been update with a plurality of record updatesthat also identify a third user within a duration threshold; and a countof the plurality of record updates is greater than a count threshold.36. The method of any of embodiments 23 to 35, wherein providing the setof values to the decision model comprises: providing the set of valuesto a neural network of the decision model to determine a neural networkresult; determining whether the neural network result satisfies a neuralnetwork result threshold; and generating an alert based on adetermination that the neural network result satisfies the neuralnetwork result threshold.37. The method of any of embodiments 23 to 36, wherein determining thecategory value comprises: determining whether the record is flagged byany indicator of a set of indicators; and determining that the categoryvalue based on a determination that the record is not flagged by anyindicator of the set of indicators.38. The method of any of embodiments 23 to 37, the operations furthercomprising: generating a message comprising the indication that therecord update satisfies the set of criteria; encrypting the message; andsending the message to an application program interface (API) of aserver.39. The method of any of embodiments 23 to 38, wherein determining thedistance threshold comprises: determining whether a first value of therecord values satisfies a second set of criteria; and based on adetermination that the first value satisfies the second set of criteria,modify the distance threshold from an initial value to a differentvalue.40. The method of any of embodiments 23 to 39, wherein each respectiverecord of the first set of records represents a respective recordupdate, and wherein each respective record is associated with a set ofidentifiers corresponding with accounts participating in the respectiverecord update.41. The method of any of embodiments 23 to 40, further comprising: inresponse to a determination that the record update satisfies the set ofcriteria, updating a profile score associated with the first record; anddetermining whether the profile score satisfies a score threshold afterupdating the profile score.42. The method of any of embodiments 23 to 41, further comprising:accessing a first application program interface (API) of a firstdatabase to retrieve an aggregation record; updating the aggregationrecord based on the record update; and sending the aggregation record toa second API after updating the aggregation record.43. A non-transitory, computer-readable media storing instructions that,when executed by one or more processors, effectuate operationscomprising those of any of embodiments 23 to 42.44. A system comprising: one or more processors; and memory storinginstructions that, when executed by the processors, cause the processorsto effectuate operations comprising those of any of embodiments 23 to42.

What is claimed is:
 1. A system for updating a record by reversing atleast one portion of an identifier, the system comprising one or morememory devices storing instructions and one or more processorsconfigured to execute the instructions that, when executed, causeoperations comprising: obtaining an update message indicating an updateto a sequential transactions database, wherein the update messagecomprises a transaction identifier and a transaction value; reversing atleast one portion of the transaction identifier to construct an indexkey; searching an aggregation database with the index key to retrieve atransaction aggregation record; updating the transaction aggregationrecord based on the transaction value; and sending the updatedtransaction aggregation record to a destination application programminginterface of a destination database.
 2. A method comprising: obtainingan update message indicating an update to a first database, wherein theupdate message comprises a first value and a second value; reversing atleast one portion of the first value to construct an index key;searching a second database with the index key to retrieve a record ofthe second database; updating, in the second database, the record basedon the second value to generate an updated record; and sending, from thesecond database, a set of values of the updated record to a thirddatabase or an application program interface (API).
 3. The method ofclaim 2, further comprising; generating a first version of the record ata time before obtaining the update message, wherein updating the recordcomprises generating a second version of the record; determining aresult indicating that the updated record satisfies a set of criteria;and sending a message comprising an identifier of the first version ofthe record indicating that the first version of the record is obsolete.4. The method of claim 2, wherein: the second value is associated with afirst category; obtaining the update message comprises obtaining a thirdvalue; the third value is associated with a second category; andupdating the record comprises storing the third value in the record inassociation with the second category.
 5. The method of claim 2, whereinthe update message is a first update message, further comprising:obtaining a previous update message before obtaining the first updatemessage, wherein the previous update message comprises a value of theprevious update message; determining a result indicating that the recordis not obsolete; and in response to the result indicating that therecord is not obsolete, preventing the record from being updated basedon the value of the previous update message.
 6. The method of claim 2,wherein: the first value comprises a first sequence and a secondsequence; and reversing the at least one portion of the first valuecomprises reversing the first sequence without reversing the secondsequence.
 7. The method of claim 2, wherein reversing the at least oneportion of the first value comprises reversing the first value in itsentirety.
 8. The method of claim 2 further comprising: associating therecord with a category value; and determining a result indicating thatthe record is stored in association with the category value, whereinsending the updated record to the API comprises sending the updatedrecord in response to the result indicating that the record is stored inassociation with the category value.
 9. The method of claim 2, whereinthe API is a first API, further comprising: sending the record to asecond API of a microservice instance; receiving a verification messagefrom the microservice instance indicating that the record satisfies aset of criteria; and sending the record to the first API in response toreceiving the verification message.
 10. The method of claim 2, furthercomprising caching a set of values of the record in a distributed cachememory, wherein retrieving the record comprises retrieving the set ofvalues from the distributed cache memory.
 11. One or morenon-transitory, machine-readable media storing instructions that, whenexecuted by one or more processors, performs operations comprising:obtaining an update message indicating an update to a first database,wherein the update message comprises a first value and a second value;reversing at least one portion of the first value to construct an indexkey; searching a second database with the index key to retrieve a recordof the second database; and updating the record based on the secondvalue to produce an updated record.
 12. The one or more non-transitory,machine-readable media of claim 11, wherein: the first value comprises afirst sequence and a second sequence; reversing the at least one portionof the first value comprises reversing the first sequence withoutreversing the second sequence.
 13. The one or more non-transitory,machine-readable media of claim 11, wherein reversing the at least oneportion of the first value comprises generating a reversed portion ofthe first value, the operations further comprising: determining a dataformat based on the reversed portion of the first value; and outputtinga set of values of the updated record based on the data format.
 14. Theone or more non-transitory, machine-readable media of claim 11, wherein:the first database comprises a long-term data store; and the seconddatabase comprises a real-time data store.
 15. The one or morenon-transitory, machine-readable media of claim 11, wherein: the firstvalue is a first identifier; reversing the at least one portion of thefirst identifier comprises generating a first reversed portion; theupdate message comprises a second identifier; and the operations furthercomprise reversing at least one portion of the second identifier todetermine a second reversed portion, wherein searching the seconddatabase comprises searching the second database based on the firstreversed portion and the second reversed portion.
 16. The one or morenon-transitory, machine-readable media of claim 11, the operationsfurther comprising: obtaining a second update message, wherein thesecond update message comprises a third value and a fourth value,wherein the third value is identical to the first value; obtaining theindex key based on the second update message by reversing the thirdvalue; determining a sum based on the second value and the fourth value;determining whether the sum is greater than a threshold; and sending aset of values of the updated record to a third database or anapplication program interface (API) in response to a determination thatthe sum is greater than the threshold.
 17. The one or morenon-transitory, machine-readable media of claim 11, wherein obtainingthe update message comprises obtaining a data stream that comprises theupdate message, the operations further comprising: determining a firstvector based on values of the update message; determining a set ofneighboring vectors in a vector space based on the first vector;determining a distance in the vector space based on the first vector andthe set of neighboring vectors; assigning the update message with a setof labels based on the distance; and determining whether the updatemessage satisfies a set of criteria based on the set of labels; andsending a set of values of the updated record to a third database or anapplication program interface (API) in response to a determination thatthat the update message satisfies the set of criteria.
 18. The one ormore non-transitory, machine-readable media of claim 11, the operationsfurther comprising providing the update message to an API of amicroservice instance, wherein updating the record comprises updatingthe record using the microservice instance.
 19. The one or morenon-transitory, machine-readable media of claim 11, wherein updating therecord comprises: determining whether a set of criteria is satisfiedbased on the updated record by providing one or more values of theupdated record to a machine learning model; and sending a set of valuesof the updated record to a third database or an application programinterface (API) in response to a determination that the set of criteriais satisfied; and associating an anomaly indicator with the set ofvalues in the third database.
 20. The one or more non-transitory,machine-readable media of claim 11, wherein the index key is a firstindex key, and wherein the first value comprises a first portion and asecond portion, and wherein reversing the at least one portion of thefirst value comprises: reversing the first portion to determine thefirst index key; reversing the second portion to determine a secondindex key; and searching the second database comprises searching thesecond database based on the first index key and the second index key.